今天碰到一個奇葩問題,mac上能執行的npm命令,到windows上執行不聊了,報這個錯
NODE_ENV 不是內部或外部命令,也不是可執行的程式,或者批處理檔案
這是怎麼回事呢?聽我慢慢道來。
"scripts": {
"dev": " pathConfig=\"dev\" node build/dev-server.js",
"test": "pathConfig=\"test\" node build/devserver.js",
"prod": "pathConfig=\"prod\" node build/devserver.js",
"start": "node build/dev-server.js",
"build": "node build/build.js",
"build-test": "node build/build-test.js",
"lint": "eslint --ext .js,.vue src"
},
以上是我package.json中的命令,當我在windows環境下執行npm run dev或者test或者prod時,就會報錯。這,是怎麼回事呢?原來在mac下執行明明沒有問題的?
原來是因為我在一條指令碼中,實際上執行了兩條命令,一條是賦值pathConfig,一條時node執行build目錄下的*.js。這是隻有mac的bash或Linux的shell才有的功能,而windows的CMD並不支援這樣的寫法,需要這麼寫才行。
"dev": " set pathConfig=\"dev\" && node build/dev-server.js"
如上,拆開兩條命令,用&&連線,即可。