Npm 网页包开发服务器:未知参数:NODE\u ENV

Npm 网页包开发服务器:未知参数:NODE\u ENV,npm,environment-variables,webpack-dev-server,Npm,Environment Variables,Webpack Dev Server,我已经用webpack设置了我的angular js项目。每当我尝试在开发模式下运行时,都会出现以下错误: “未知参数:NODE_ENV” 下面是我的package.json。我已经在使用最新版本的Web包开发服务器。请告诉我这里出了什么问题 Package.json: { "name": "My project", "version": "0.0.1", "description": "", "main": "/", "author": "", "license": "MIT", "scrip

我已经用webpack设置了我的angular js项目。每当我尝试在开发模式下运行时,都会出现以下错误:

“未知参数:NODE_ENV”

下面是我的package.json。我已经在使用最新版本的Web包开发服务器。请告诉我这里出了什么问题

Package.json

{
"name": "My project",
"version": "0.0.1",
"description": "",
"main": "/",
"author": "",
"license": "MIT",
"scripts": {
"start": "webpack-dev-server --config webpack/webpack.dev.js --watch --NODE_ENV=dev",
"test": "karma start --NODE_ENV=test",
"build": "webpack --config webpack/webpack.build.js --NODE_ENV=production"
},
"dependencies": {
"angular": "1.6.3",
"angular-datepicker": "^1.0.5",
"angular-file-upload": "^2.2.0",
"angular-flash-alert": "^2.2.4",
"angular-messages": "^1.5.0",
"angular-repository": "^0.1.8",
"angular-resource": "^1.5.0",
"angular-sanitize": "^1.5.5",
"angular-symfony-acl": "^1.0.9",
"angular-symfony-form": "^3.0.0",
"angular-translate": "^2.11.0",
"angular-ui-bootstrap": "^1.3.2",
"angular-ui-router": "^0.2.18",
"angular-voauth2": "^0.1.16",
"angular-youtube-embed": "^1.2.0",
"angularjs-datepicker": "^2.1.3",
"bootstrap": "^3.3.6",
"bootstrap-sass": "3.3.6",
"dotenv": "^4.0.0",
"font-awesome": "4.5.0",
"jquery": "2.2.0",
"lodash": "^4.0.1",
"moment": "^2.12.0",
"ng-file-upload": "^12.0.4",
"ng-infinite-scroll": "^1.2.1",
"postcss-loader": "^0.9.1",
"ui-select": "^0.19.4"
},
"devDependencies": {
"angular-mocks": "1.5.0-rc.2",
"angular-module-mocks": "1.2.19",
"babel-core": "^6.4.5",
"babel-istanbul": "0.6.0",
"babel-loader": "^6.2.4",
"babel-preset-es2015": "^6.3.13",
"compression-webpack-plugin": "0.3.0",
"connect-history-api-fallback": "^1.2.0",
"css-loader": "^0.18.0",
"file-loader": "0.8.5",
"html-webpack-plugin": "2.7.2",
"webpack-dev-server": "2.4.2",
"istanbul": "0.4.2",
"istanbul-instrumenter-loader": "0.1.3",
"jasmine": "2.4.1",
"karma": "0.13.19",
"karma-coverage": "0.5.3",
"karma-jasmine": "0.3.6",
"karma-phantomjs-launcher": "1.0.0",
"karma-sourcemap-loader": "0.3.7",
"karma-spec-reporter": "0.0.23",
"karma-typescript-preprocessor": "0.0.21",
"karma-webpack": "1.7.0",
"lodash": "4.0.1",
"node-sass": "3.4.2",
"phantomjs-polyfill": "0.0.1",
"phantomjs-prebuilt": "2.1.3",
"raw-loader": "0.5.1",
"sass-loader": "3.1.2",
"style-loader": "0.13.0",
"url-loader": "0.5.7",
"webpack": "1.12.12"
}
}
webpack.dev.js

var loaders = require("./loaders");
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
    entry: {
        build: './src/app.js',
        vendors: ['angular', 'bootstrap', 'angular-ui-router', 'ng-file-upload']
    },
    output: {
        filename: '[name].min.js',
        path: 'dist'
    },
    resolve: {
        root: __dirname,
        extensions: ['', '.js', '.json']
    },
    resolveLoader: {
        modulesDirectories: ["node_modules"]
    },
    devtool: "source-map",
    devServer: {
        port: 8080,
        historyApiFallback: true
    },
    plugins: [
        new HtmlWebpackPlugin({
            template: './src/index.html',
            inject: 'body',
            hash: true
        }),
        new webpack.ProvidePlugin({
            moment: 'moment',
            $: 'jquery',
            jQuery: 'jquery',
            'window.jQuery': 'jquery',
            'window.jquery': 'jquery'
        })
    ],
    module:{
        loaders: loaders
    }
};

您需要在wepack配置中定义
节点\u ENV
。这应该起作用:

plugins: [
  new webpack.DefinePlugin({
    "process.env": {
      NODE_ENV: JSON.stringify(process.env.NODE_ENV || 'production') // default value if not specified
    }
  })
]

除了@Emre提供的功能外,我还必须更改package.json中的npm start命令,以在开发模式下运行应用程序。那只是对我有用。My package.json现在看起来如下所示:

"scripts": {
    "start": "NODE_ENV=dev webpack-dev-server --config ./webpack/webpack.dev.js --",
    "test": "karma start --NODE_ENV=test",
    "build": "webpack --config webpack/webpack.build.js --NODE_ENV=production"
},

谢谢。

您需要向我们提供您的webpack.config/angular-cli.json,以便我们提供帮助you@EmreÖztürk-你能调查此事真是太好了。我还添加了webpack.dev.js文件。那么在
webpack dev server
调用中,
--NODE_ENV
是什么?NODE_uenv是环境变量,它可以保存dev/prod值。这有助于,但我还必须执行其他更改。非常感谢你调查此事+1.