NODE_ENV 不是內部或外部命令,也不是可執行的程式,或者批處理檔案

北辰狼月發表於2018-03-29

    今天碰到一個奇葩問題,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"

如上,拆開兩條命令,用&&連線,即可。

相關文章