Как запустить производственный сайт после сборки vue cli

Я использую VueCLI 2 и строю как производство. построение.js построен и скомпилирован в 200KB. Когда я повторно запускаю сервер в качестве разработки, он загружается 3MB. Я уверен, что строение.JS внутри папки dist составляет 200 КБ. Я попытался открыть индекс.html, но он не работает и перенаправляется в корневой каталог на вебсайт.

пакета.в JSON

"scripts": {
  "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot",
  "build": "cross-env NODE_ENV=production webpack --progress --hide-modules"
},

Webpack

module.exports = { ...
module:{
 ...
 plugins: [
  new webpack.ProvidePlugin({
    $: 'jquery',
    jquery: 'jquery',
    'window.jQuery': 'jquery',
    jQuery: 'jquery'
  })
 ],
 devtool: '#eval-source-map'
},
...
}

if (process.env.NODE_ENV === 'production') {
  module.exports.devtool = '#source-map'
  // http://vue-loader.vuejs.org/en/workflow/production.html
  module.exports.plugins = (module.exports.plugins || []).concat([
   new webpack.DefinePlugin({
    'process.env': {
     NODE_ENV: '"production"'
   }
  }),
  new webpack.optimize.UglifyJsPlugin({
    sourceMap: true,
    compress: {
     warnings: true
    }
  }),
  new webpack.LoaderOptionsPlugin({
    minimize: true
  }),
  new webpack.optimize.CommonsChunkPlugin({
    name: 'vendor',
    minChunks: function (module) {
      return module.context && module.context.indexOf('node_modules') !== -1;
    }
  })
 ])
}

HTML-код

<body>
  <script src="/dist/vendor.js"></script>
  <script src="/dist/main.js"></script>
</body>

команда

npm запустить сборку

npm запустить dev

2 ответов


npm run build создает build каталог с производственной сборкой вашего приложения.

для того, чтобы служить index.html в браузере вам нужен HTTP-сервер.

вы можете использовать любой сервер, который вы хотите, вот пример с служить :

npm install -g serve
serve -s dist

очень легко с express и очень расширяемым / конфигурируемым.

установить

npm install -D express

Compose

сервер.js

const express = require('express')
const app = express()
app.use(express.static('dist')) // absolute or relative to CWD
const port = 8080
app.listen(port, () => console.log(`Listening on port ${port}`))

выполнить

node server.js