直接上手package.json文件的代码。
"scripts": {
"watch": "../scripts/watch.js --watch",
},
当我在命令行执行npm run watch的时候,在mac下正常,但是在windows下就报错。
windows 报错信息
> ./scripts/watch.js --watch
'.' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
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
但是经过修改之后,我发现是执行环境的问题
windows 修改之后的代码
"scripts": {
"watch": "node ../scripts/watch.js --watch",
},
在windows环境下,执行npm run watch能正常执行了。
因为在package.json中明确定义了,脚本执行环境是node下执行,但是我想知道为什么要这样,是什么问题造成了我们必须在windows下这样写呢。
因为
.
和..
是 Unix 平台的两个目录链接,而 Windows 上的 cmd 不支持。你可以用 Powershell 执行 npm 命令,它兼容.
和..