npm i webpack-cli -g
css
npm i webpack-cli@2.0.15 webpack@4.6.0 css-loader@0.28.11 extract-text-webpack-plugin@4.0.0-beta.0 file-loader@1.1.11 html-webpack-plugin@3.2.0 optimize-css-assets-webpack-plugin@4.0.0 url-loader@1.0.1 vue-loader@15.0.3 vue-style-loader@4.1.3 vue-template-compiler@2.5.16 webpack-bundle-analyzer@2.11.1 webpack-dev-middleware@3.1.3 webpack-dev-server@3.1.3 webpack-hot-middleware@2.22.1 compression-webpack-plugin@1.1.11 -D
若是出現上面的錯誤,則經過npm安裝下面包(主要是針對開通了eslint的狀況須要更新eslint版本)html
npm i eslint@4.19.1 eslint-config-standard@11.0.0 eslint-friendly-formatter@4.0.1 eslint-loader@2.0.0 eslint-plugin-import@2.11.0 eslint-plugin-node@6.0.1 eslint-plugin-promise@3.7.0 eslint-plugin-standard@3.1.0 eslint-plugin-vue@4.5.0 -D
若是出現上面的錯誤,則須要在webppack中配置(vue-loader 15版本須要):vue
// webpack.config.js const { VueLoaderPlugin } = require('vue-loader') module.exports = { // ... plugins: [ new VueLoaderPlugin() ] }
mode: 'development'
mode: 'production'
new webpack.NamedModulesPlugin() new webpack.NoEmitOnErrorsPlugin()
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 ) } }), new webpack.optimize.CommonsChunkPlugin({ name: 'manifest', minChunks: Infinity }), new webpack.optimize.CommonsChunkPlugin({ name: 'app', async: 'vendor-async', children: true, minChunks: 3 }),
而後加上下面的配置node
optimization: { runtimeChunk: { name: 'manifest' }, splitChunks: { cacheGroups: { vendor: { test: /[\\/]node_modules[\\/]/, name: 'vendor', chunks: 'all' }, 'async-vendors': { test: /[\\/]node_modules[\\/]/, minChunks: 2, chunks: 'async', name: 'async-vendors' } } } }
則須要將下面的配置webpack
new ExtractTextPlugin({ filename: utils.assetsPath('css/[name].[contenthash].css'), allChunks: true }),
改爲web
new ExtractTextPlugin({ filename: utils.assetsPath('css/[name].[md5:contenthash].css'), allChunks: true }),
若是出現了話,就將在webpack中下面配置的options整個去掉npm
{ test: /\.js$/, loader: 'babel-loader', options: { plugins: ['lodash'], presets: [['env', { modules: false, targets: { node: 4 } }]] }, exclude: /node_modules/, include: [resolve('src'), resolve('test')] },
而後在.babelrc中的plugins中增長lodashpromise
{ "presets": [ ["env", { "modules": false, "targets": { "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] } }], "stage-2" ], "plugins": ["transform-vue-jsx", "transform-runtime", "lodash"], "env": { "test": { "presets": ["env", "stage-2"], "plugins": ["transform-vue-jsx", "istanbul"] } } }
這樣就大功告成了。babel