今天用webpack 打包的时候发现 不加 set NODE_ENV 压缩 竟然比加上 set NODE_ENV 还要小,命令行 分两次输入 set NODE_ENV=production (回车) webpack .... 的时候是正常的。反复实验屡次,打印NODE_ENV 也正常。(如图)css
加上 set NODE_ENV
html
不加 set NODE_ENV
node
配置项webpack
屡次打印web
大眼一看没什么问题,仔细看如下就会发现第一次的输出多了一个空格json
就是多了一个致命空格,致使我一下午时而压缩成功,时而压缩失败,很是灵异。
拐回头看咱们的package.json 代码,咱们来对比一下对错写法babel
wrong
app
correct
post
一个小失误 ,顺便附上个人 webpack.production.config.jsui
const webpack = require("webpack"); const HtmlWebpackPlugin = require('html-webpack-plugin'); const ExtractTextPlugin = require("extract-text-webpack-plugin"); module.exports = { entry:__dirname + "/app/main.js", output: { filename:'bundle-[hash:8].js', path:__dirname+"/build" }, module:{ rules:[ { test:/(\.jsx|\.js)$/, use:{ loader:'babel-loader' }, exclude:/node_modules/ }, { test:/\.css$/, use: ExtractTextPlugin.extract({ fallback: "style-loader", use: [ { loader:'css-loader', options:{ module:true } }, { loader:'postcss-loader' } ] }) }, { test:/(\.jpg|\.png)$/i, use:{ loader:'url-loader', options:{ limit:5000, name:'img/[name].[hash:8].[ext]' } } } ] } , plugins:[ new webpack.BannerPlugin("翻版必究"), new HtmlWebpackPlugin({ template:__dirname+"/app/index.tmpl.html" }), new webpack.HotModuleReplacementPlugin(), new ExtractTextPlugin("styles-[hash:8].css"), new webpack.optimize.OccurrenceOrderPlugin(), new webpack.optimize.UglifyJsPlugin({ output:{ comments:false }, compress:{ warnings: false } }), new webpack.DefinePlugin({ 'process.env':{ 'NODE_ENV':JSON.stringify(process.env.NODE_ENV) } }), new webpack.DefinePlugin({ __DEV__: JSON.stringify(JSON.parse((process.env.NODE_ENV == 'dev') || 'false')) }), new webpack.optimize.CommonsChunkPlugin({ name: 'vendor', filename: './js/[name].[hash:8].js' }), ] }