win 下 package.json 与 webpack 配置容易被忽略的一个坑

原由

今天用webpack 打包的时候发现 不加 set NODE_ENV 压缩 竟然比加上 set NODE_ENV 还要小,命令行 分两次输入 set NODE_ENV=production (回车) webpack .... 的时候是正常的。反复实验屡次,打印NODE_ENV 也正常。(如图)css

加上 set NODE_ENV
clipboard.pnghtml

不加 set NODE_ENV
clipboard.pngnode

配置项webpack

clipboard.png

debug

屡次打印web

clipboard.png

clipboard.png

clipboard.png

大眼一看没什么问题,仔细看如下就会发现第一次的输出多了一个空格json

缘由

就是多了一个致命空格,致使我一下午时而压缩成功,时而压缩失败,很是灵异。
拐回头看咱们的package.json 代码,咱们来对比一下对错写法babel

wrong
clipboard.pngapp

correct
clipboard.pngpost

一个小失误 ,顺便附上个人 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'
        }),

 
    ]

}