在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Linux  HTML/ npm run scripts 腳本在mac上正常執(zhí)行,但是windows下不能

npm run scripts 腳本在mac上正常執(zhí)行,但是windows下不能正常執(zhí)行,后發(fā)現(xiàn)是環(huán)境問題,為什么會這樣

直接上手package.json文件的代碼。

  "scripts": {
    "watch": "../scripts/watch.js --watch",
  },

當我在命令行執(zhí)行npm run watch的時候,在mac下正常,但是在windows下就報錯。

windows 報錯信息

    > ./scripts/watch.js --watch

'.' 不是內(nèi)部或外部命令,也不是可運行的程序
或批處理文件。
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! aaaaa-wxapp@1.0.0 watch: `./scripts/watch.js --watch`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the aaaaa-wxapp@1.0.0 watch script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\29656\AppData\Roaming\npm-cache\_logs\2018-02-24T03_30_38_264Z-debug.log

但是經(jīng)過修改之后,我發(fā)現(xiàn)是執(zhí)行環(huán)境的問題

windows 修改之后的代碼

  "scripts": {
    "watch": "node ../scripts/watch.js --watch",
  },

在windows環(huán)境下,執(zhí)行npm run watch能正常執(zhí)行了。
因為在package.json中明確定義了,腳本執(zhí)行環(huán)境是node下執(zhí)行,但是我想知道為什么要這樣,是什么問題造成了我們必須在windows下這樣寫呢。

回答
編輯回答
別傷我

package.json里的scripts實際上就是在執(zhí)行bash(unix)和cmd(windows)命令, 只不過會先把./node_modules/bin/先加到PATH里

在cmd里目錄層級是用\分割的, 所以執(zhí)行./scripts/watch.js --watch時并不能把前面的部分識別為一個文件

但如果你使用.\scripts\watch.js --watch的話會啟動js文件的默認打開程序來打開這個文件而非執(zhí)行

在類unix系統(tǒng)則可以通過hashbang語法來指定執(zhí)行程序所以不會出問題

用node來執(zhí)行的話文件名只是一個參數(shù), 如何解析取決于node的實現(xiàn), 而不是cmd或bash

2018年7月31日 17:42
編輯回答
浪婳

npm scripts相當于命令行代碼的別名
`

"scripts": {
    "watch": "../scripts/watch.js --watch",
},

`
watch命令不是可執(zhí)行的命令,所以執(zhí)行的時候會報錯,至于為什么在mac上正常執(zhí)行,我也不清楚,窮鬼沒有Mac。

2017年5月27日 01:27
編輯回答
款爺

windows路徑里面沒有 .. 這樣的用法

2017年8月9日 23:28
編輯回答
扯不斷

因為 ... 是 Unix 平臺的兩個目錄鏈接,而 Windows 上的 cmd 不支持。你可以用 Powershell 執(zhí)行 npm 命令,它兼容 ...

2018年1月16日 12:17