当命令grunt
在与grunt.js文件相同的路径中的Windows shell中运行时,Windows选择使用Windows脚本宿主运行grunt.js。 The recommended path将明确调用grunt.cmd
。
这一切都很好,但是如果我想在我的NPM package.json中创建一个独立于操作系统的脚本命令,我该怎么办?如果我想在* nix:
中运行,我不能这样做"scripts": {
"dox": "grunt.cmd dox"
}
任何指针?或者,我缺少一大块拼图吗? (我对NPM和Grunt都同样陌生。)
答案 0 :(得分:7)
我找到了创建只调用grunt.bat
的{{1}}文件的解决方案:
@grunt.cmd %*
因此,在Windows上,只调用grunt.cmd
会触发批处理文件,因为它的优先级高于Windows Scripting Host的grunt
。在Linux上,常规grunt.js
二进制文件被拾取。这对我来说是跨平台的。
答案 1 :(得分:0)
我遇到了同样的问题:当包的根目录中有tslint.js
个文件,而package.json
中的一个npm脚本只调用tslint
时,npm将触发jscript而不是节点,导致弹出“ Microsoft JScript编译错误”。
一种解决方法是从.JS
环境变量中删除PATHEXT
。