windows中的全球通配符npm

时间:2014-12-21 22:43:20

标签: node.js npm glob

我试图让npm在脚本文件夹上进行构建浏览器化。问题是,我在Windows上做文件夹/ * .js似乎不起作用。我已尝试全局安装glob,但每当我运行一个构建命令时,错误就会回来说"找不到模块&#c; \ www \ project \ static \ js \ components * .js&# 39 ;.

这是我的package.json:

{
  "name": "TEST",
  "description": "ITS ME MARIO",
  "author": "JJ",
  "version": "0.0.1",
  "dependencies": {
    "connect": "1.8.5",
    "express": "2.5.2",
    "jade": "0.20.0",
    "mongoose": "3.8.x",
    "socket.io": "0.8.7"
  },
  "devDependencies": {
    "vows": "0.5.x",
    "mocha": "*",
    "should": "*",
    "jshint": "latest",
    "browserify": "latest",
    "rimraf": "latest",
    "hashmark": "latest",
    "stylus": "latest",
    "glob": "latest"

  },
  "scripts": {
      "clean": "rimraf dist",
      "test": "mocha test/",
      "build:components-js": "browserify static/js/components/*.js > static/dist/components.js",
      "build:app-js": "browserify static/js/script > static/dist/app.js",
      "build:css": "stylus static/css/style.styl > static/dist/main.css",
      "build": "npm run build:css && npm run build:components-js && npm run build:app-js"

  },
  "engine": "node >= 0.6.6"
}

任何人都知道我做错了什么?

1 个答案:

答案 0 :(得分:8)

我不认为你做错了什么;这基本上是Windows shell /控制台/命令提示符的限制,尽管浏览器可以改进'避开它并使用glob / node-glob代替。我不确定browserify,但是jshint很相似。

一些想法:

只是猜测,但可能还有一种方法

  • 使用PowerShell(最近版本的Windows附带 - 请参阅Get-ChildItem命令)

  • 或Hamilton C shell(我认为使用...代替**)或其他东西,作为你的shell。

  • 使用带有/r的循环来递归到子文件夹。我不推荐这个 - 特定于Windows,不是非常可链接 - 但是' wint'以下命令设置工作' (如果我在npm run wint文件中包含以下内容,则使用package.json调用)。

适用于Windows的

循环(注意:将下面的输出重定向到文件并不简单>,因为...do jshint %f > chk.txt会覆盖自身,而...do jshint %f > %f.chk.txt可能会生成许多chk.txt文件周围):

"scripts": {
  "lint": "jshint **.js",
  "wint": "for /r %f in (*.js) do jshint %f",
},

但上述命令通常不能跨平台使用。此外,使用替代shell,默认情况下,您无法在文件夹{"打开命令窗口'"

上获得shift+right-click

相关: