如何使用webpack Encore设置VueJS生产模式

How to use webpack Encore to set VueJS production mode

我正在尝试使用 Webpack Encore 为 VueJS 设置生产模式。所以我按照文档所说指定了一个新插件,但这似乎没有任何改变。

new webpack.DefinePlugin({
  'process.env.NODE_ENV': JSON.stringify('production'),
}),

我为 NODE_ENV 设置尝试了多种不同的语法,但似乎没有任何效果

我错过了什么吗?我的 webpack conf 看起来像这样

const
  CopyWebpackPlugin = require('copy-webpack-plugin'),
  Encore = require('@symfony/webpack-encore'),
  UglifyJsPlugin = require('uglifyjs-webpack-plugin'),
  webpack = require('webpack');

Encore
  .setOutputPath('public/build/')
  .setPublicPath('/build')
  .cleanupOutputBeforeBuild()
  .addEntry('app', './assets/js/app.js')
  .addEntry('admin', './assets/js/admin.js')
  .addEntry('common', './assets/js/common.js')
  .addPlugin(new CopyWebpackPlugin([
   ...
  ]))
  .enableSassLoader()
  .enableVueLoader()
  .autoProvideVariables({
    '$': 'jquery',
    'jQuery': 'jquery',
    'window.$': 'jquery',
    'window.jQuery': 'jquery',
  })
  .enableSourceMaps(!Encore.isProduction())
;
const config = Encore.getWebpackConfig();

config.plugins = config.plugins.filter(
  (plugin) => !(plugin instanceof webpack.optimize.UglifyJsPlugin)
);
if (Encore.isProduction()) {
  config.plugins.push(
    new webpack.DefinePlugin({
      'process.env.NODE_ENV': JSON.stringify('production'),
    }),
    new UglifyJsPlugin()
  );
}
config.resolve.alias = {
  handlebars: 'handlebars/dist/handlebars.min.js',
  vue: 'vue/dist/vue.js',
};

module.exports = config;

这个我也试过了,没成功

.enableVueLoader(function(options) {
  options.preLoaders = {
    productionMode: true,
  };
});

我将 Webpack Encore 0.20 与 Webpack 3 和 VueJS 2.5.16

一起使用

有两种方法可以做到这一点,

  1. 在你的webpack.config.js中,改变vue的别名如下:

    config.resolve.alias = {
        vue: 'vue/dist/vue.min.js',
    };
    
  2. 明确关闭开发工具。

    import Vue from 'vue'
    import App from './App'
    
    Vue.config.devtools = false
    Vue.config.productionTip = false
    
    new Vue({
       el: '#app',
       template: '<App/>',
       components: { App }
    })
    

最后,您确实需要在生产模式下构建您的应用:

yarn run encore production

Reference Tutorial