Как вывести один файл build.js для vue production build - PullRequest
0 голосов
/ 04 февраля 2019

Я использую vue-cli 2.9.6, и создал проект vue, используя vue init webpack <project name>.

Когда я звоню vue run build, он создает несколько различных файлов js (и имена меняются каждый раз...):

vendor.20d54e752692d648b42a.js
vendor.20d54e752692d648b42a.js.map
app.ed70f310595763347909.js
app.ed70f310595763347909.js.map
manifest.2ae2e69a05c33dfc65f8.js
manifest.2ae2e69a05c33dfc65f8.js.map

А также css-файлы вроде этого:

app.a670fcd1e9a699133143a2b144475068.css
app.a670fcd1e9a699133143a2b144475068.css.map

Я бы хотел, чтобы на выходе было просто 2 файла:

build.js  { for all js }
styles.css { for all css }

Какя могу достичь этого?

1 Ответ

0 голосов
/ 04 февраля 2019
  1. для предотвращения создания vendor.js и manifest.js просто удалите следующий код из webpack.prod.conf.js
    // split vendor js into its own file
    new webpack.optimize.CommonsChunkPlugin({
      name: 'vendor',
      minChunks (module) {
        // any required modules inside node_modules are extracted to vendor
        return (
          module.resource &&
          /\.js$/.test(module.resource) &&
          module.resource.indexOf(
            path.join(__dirname, '../node_modules')
          ) === 0
        )
      }
    }),
    // extract webpack runtime and module manifest to its own file in order to
    // prevent vendor hash from being updated whenever app bundle is updated
    new webpack.optimize.CommonsChunkPlugin({
      name: 'manifest',
      minChunks: Infinity
    }),

Для предотвращения установки исходных карт в config/index.js переменная productionSourceMap с true до false

Изменение имени app.js на build.js можетполучить путем изменения свойств entry и output в webpack.base.conf.js следующим образом:

entry: {
    build: './src/main.js'
},
output: {
    path: config.build.assetsRoot,
    filename: utils.assetsPath('js/[name].js'),
    chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
},
Обновить имя параметра обновления выходного файла css для ExtractTextPlugin в webpack.prod.conf.js до filename: utils.assetsPath('css/styles.css'),
...