加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – if(process.env.NODE_ENV ===’production’)总是

发布时间:2020-12-17 06:56:39 所属栏目:安全 来源:网络整理
导读:尝试通过从package.json上的此脚本列表运行build命令来构建angular-webpack应用程序时: "scripts": { "test": "NODE_ENV=test karma start","build": "if exist dist rd /s /q dist mkdir dist set NODE_ENV=production webpack cp app/index.html dist/ind
尝试通过从package.json上的此脚本列表运行build命令来构建angular-webpack应用程序时:

"scripts": {
    "test": "NODE_ENV=test karma start","build":  "if exist dist rd /s /q dist && mkdir dist && set NODE_ENV=production && webpack && cp app/index.html dist/index.html","start": "webpack-dev-server --content-base app"
  },

这是控制台上的结果:

$npm run build

    > webpack-ng-egg@1.0.0 build M:Learning webpackegghead.io - AngularJS - Angula
    r and Webpack for Modular Applicationswebpack-ng-egg
    > if exist dist rd /s /q dist && mkdir dist && set NODE_ENV='production' && webp
    ack && cp app/index.html dist/index.html

    process.env.NODE_ENV  : 'production'
    process.env.NODE_ENV === 'production' ????  : false
    Hash: c3136b0024cbd48ccb2e
    Version: webpack 1.13.2
    Time: 3185ms
        Asset     Size  Chunks             Chunk Names
    bundle.js  1.23 MB       0  [emitted]  main
        + 10 hidden modules

这就是webpack.config.js文件的样子:

var webpack = require('webpack');
    var path = require('path');
    var config = {
        context: path.resolve(__dirname,"app"),entry:'./app.js',output: {
            path : __dirname + '/app',filename:'bundle.js' // il ne sera pas généré dans le code,juste en mémoire
        },plugins:[
            new webpack.DefinePlugin({
                ON_TEST:process.env.NODE_ENV === 'test'
            })
        ],module:{
            loaders: [
            {
              test: /.js$/,exclude: /(node_modules|bower_components)/,loader: 'babel',// 'babel-loader' is also a legal name to reference
              query: {
                presets: ['es2015']
              }
            },{ test: /.css$/,loader: "style-loader!css-loader",exclude: /(node_modules|bower_components)/
             },{
              test: /.html$/,loader: 'raw',// 'babel-loader' is also a legal name to reference
            },{  test: /.styl$/,loader: 'style-loader!css-loader!stylus-loader',exclude: /(node_modules|bower_components)/
             }
          ]
        },devServer:{
            //contentBase:path.join(__dirname,'dist') // ceci est juste un exemple,si dist est l'endroit ou on aurait généré les fichiers
            inline:true,// les mises à jour de style ne sont plus affichés instantnément avec cette option donc j'ai ajouté le watch:true et ?à marché!!!
            watch:true

        }
        /*resolve: {
            extensions: ['','.js','.jsx','.css']
        },resolveLoader: {
            root: require('path').resolve(__dirname,"node_modules")
        }*/
    }

    console.log("process.env.NODE_ENV  : " + process.env.NODE_ENV);
    console.log("process.env.NODE_ENV === 'production' ????  : " + (process.env.NODE_ENV == 'production'));
    //config.output.path = path.resolve(__dirname,"dist");
    //console.log("config.output.path  : " + config.output.path);


    if(process.env.NODE_ENV === 'production') {
        console.log("this is the prod env!!!!!!!!!!");
        config.output.path = path.resolve(__dirname,"dist");
    }

    module.exports = config;

这里的问题是,当测试(process.env.NODE_ENV ===’生产’)时,它永远不会返回true,即使它应该是(请参阅上面控制台上记录的内容).我试图改变一个简单的平等而不是严格的平等,但仍然一直都是假的.

解决方法

我今天遇到了这个问题.

当我使用set NODE_ENV = production&&在npm脚本中的东西然后NODE_ENV =生产变成生产“”,后面有一个空格.

因此,我们将生产与生产进行比较“”,这显然是假的.

的package.json

scripts: {
    "start": "set NODE_ENV=development && webpack --watch --progress","test": "set NODE_ENV=production && webpack"
}

比较

console.log(process.env.NODE_ENV.trim() === "production"); //True if ran test else false
console.log(process.env.NODE_ENV === "production"); //False
console.log(process.env.NODE_ENV.trim() === "development"); //True if ran start else false
console.log(process.env.NODE_ENV === "development"); //False

webpack.config.js的工作示例

const webpack = require("webpack");
const dev = process.env.NODE_ENV.trim() !== "production";

module.exports = {
    entry: "./index.js",output: {
        path: "./",filename: "parse.js"
    },module: {
        rules: [
            {
                test: /.js/,use: "babel-loader",exclude: /node_modules/
            }
        ]
    },plugins: dev ? [] : [
        new webpack.optimize.UglifyJsPlugin()
    ],target: "node"
};

所以,使用trim().

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读