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'
        }),

 
    ]

}
相關文章
相關標籤/搜索