天天看點

NODE_ENV 不是内部或外部指令,也不是可運作的程式,或者批處理檔案

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

如上,拆開兩條指令,用&&連接配接,即可。