7

当命令grunt在与 grunt.js 文件相同路径的 Windows shell 中运行时,Windows 会选择使用 Windows 脚本宿主运行 grunt.js。推荐的路径是显式调用grunt.cmd.

这一切都很好,但如果我想在我的 NPM package.json 中创建一个独立于操作系统的脚本命令,我该怎么办?如果我还想在 *nix 中运行,我不能这样做:

"scripts": {
    "dox": "grunt.cmd dox"
}

任何指针?或者,我是否遗漏了一大块拼图?(我对 NPM 和 Grunt 都同样陌生)。

4

2 回答 2

8

我找到了创建一个grunt.bat只调用的文件的解决方案grunt.cmd

@grunt.cmd %*

因此,在 Windows 上,仅调用grunt会触发批处理文件,因为它的优先级高于 Windows Scripting Host 的grunt.js. 在 Linux 上,常规grunt二进制文件被拾取。这对我来说是跨平台的。

于 2012-11-10T04:40:20.183 回答
0

我遇到了同样的问题:当tslint.js包的根目录中有文件并且在package.jsonjust calls中有一个 npm 脚本时tslint,jscript 由 npm 而不是节点触发,导致“Microsoft JScript 编译错误”弹出窗口。

一种解决方法是.JSPATHEXT环境变量中删除。

于 2019-02-25T15:49:48.110 回答