Heim > Fragen und Antworten > Hauptteil
Frage 1: In der Projektdatei json.package steht NODE_ENV=development. Bedeutet dies, dass durch die Ausführung von npm run dev die Knotenumgebung festgelegt und zur Entwicklungsumgebung gewechselt wird?
Frage 2: Was ist also der Unterschied zwischen Schreiben NODE_ENV=development
und Nichtschreiben
"scripts": {
"compile": "NODE_ENV=production webpack",
"start": "npm run dev",
"dev": "NODE_ENV=development node --harmony bin/webpack-dev-server",
},
Frage 3: Wenn ich npm start ausführe, warum funktioniert es dann nicht normal?
$ npm start
> react-redux-jwt-auth-example@0.1.0 start C:\Users\Administrator\Desktop\react-redux-jwt-auth-example
> npm run dev
> react-redux-jwt-auth-example@0.1.0 dev C:\Users\Administrator\Desktop\react-redux-jwt-auth-example
> NODE_ENV=development node --harmony bin/webpack-dev-server
'NODE_ENV' ▒▒▒▒▒ڲ▒▒▒▒ⲿ▒▒▒Ҳ▒▒▒ǿ▒▒▒▒еij▒▒▒
▒▒▒▒▒▒▒▒▒ļ▒▒▒
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "D:\Program Files\nodejs\node.exe" "D:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "run" "dev"
npm ERR! node v7.2.0
npm ERR! npm v3.10.9
npm ERR! code ELIFECYCLE
npm ERR! react-redux-jwt-auth-example@0.1.0 dev: `NODE_ENV=development node --harmony bin/webpack-dev-server`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the react-redux-jwt-auth-example@0.1.0 dev script 'NODE_ENV=development node --harmony bin/webpack-dev-server'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the react-redux-jwt-auth-example package,
npm ERR! not with npm itself.
天蓬老师2017-07-05 11:07:37
npm run dev
是【约定俗成】的开发环境语句,一般习惯是在这条语句内设置 NODE_ENV 环境变量。这不是必须的,但是大家都这么做…
如果不写,那么你就起的开发环境就没有设置入 NODE_ENV 这个变量。在 Vue 和 React 内部会检查这个环境变量,如在 React 中,当 NODE_ENV 为 development 时会额外打开类型检查来方便开发。Vue 中这个环境变量也会影响 Vuex 等插件内部时间旅行一类的功能。
Windows 下环境变量有坑,可能需要 cross-env 这个包来辅助设入环境变量。
淡淡烟草味2017-07-05 11:07:37
写了NODE_ENV=development就可以在程序中通过以下代码来判断是在哪种环境:
if (process.env.NODE_ENV === 'development') {
// 开发环境
}