当命令 grunt
在与grunt.js文件相同的路径中运行时,Windows选择使用Windows脚本主机运行grunt.js。推荐的路径是明确致电grunt.cmd
。
这一切都很好,但是,如果我想在我的npm package.json中创建独立于OS的脚本命令,该怎么办?如果我还想在 *nix中运行:
我做不到"scripts": {
"dox": "grunt.cmd dox"
}
有指针吗?或者,我缺少一个很大的难题吗?(我同样是NPM和Grunt的)。
我找到了创建grunt.bat
文件的解决方案,该文件刚刚调用grunt.cmd
:
@grunt.cmd%*
因此,在Windows上,只需调用grunt
即可触发批处理文件,因为它比Windows脚本脚本的 grunt.js
的优先级更高。在Linux上,常规的grunt
二进制拾取了。这对我来说是跨平台的作用。
我遇到了同样的问题:当软件包的根目录中有 tslint.js
文件,而 package.json
中的npm脚本只会调用 tslint
,jscript由npm而不是节点,而不是node,而不是node。导致" Microsoft JScript汇编错误"弹出。
解决方法正在从PATHEXT
环境变量中删除.JS
。