在Windows上的npm脚本中使用通配符

时间:2014-12-13 01:26:59

标签: javascript node.js npm

我试图使用带有npm脚本命令的jshint来lint我的所有javascript文件。

我在Windows上运行,无论我指定哪种通配符,我似乎都不会抓取多个文件。

引用特定文件有效:

"scripts": {
    "lint": "jshint app/main.js"
}

但是以下所有结果都会导致错误:

"scripts": {
    // results in Can't open app/**/*.js'
    "lint1": "jshint app/**/*.js",

    // results in Can't open app/*.js'
    "lint2": "jshint app/*.js",

    // results in Can't open app/**.js'
    "lint3": "jshint app/**.js",
}

1 个答案:

答案 0 :(得分:20)

虽然在Windows上的npm中将jshint作为脚本任务运行时无法使用通配符,但您可以解决它。默认情况下,如果jshint传递给目录,它将以递归方式搜索该目录。所以在你的情况下,你可以简单地做:

"script": {
  "lint": "jshint ."
}

甚至

.jshintignore

这将导致所有文件 - 包括node_modules中的文件被删除 - 这可能不是您想要的。最简单的方法是在项目的根目录中包含一个名为node_modules/ build/ dir/another_unlinted_script.js 的文件,其中包含您不想要的文件夹和脚本:

global m_pTest

这是jshint作为npm脚本任务的跨平台解决方案。