1

花了好几个小时试图找出这个东西,但无济于事。我确信它就像语法一样简单,但也许我已经盯着这个问题太久了。我正在尝试为一段旧代码构建一个开发环境。由于当前代码库的大小,重构不是一种选择。

当然,最大的问题是我试图模仿 11 个月前建成的环境,需要以下内容

节点 v0.6.11 npm v1.1.1 早午餐 v0.8.1 咖啡脚本 v1.2

package.json 目前有

 "dependencies": {
    "coffee-script": ">= 1.1.1",
    "underscore":    ">= 1.1.7",
    "eco":           ">= 1.0.3",
    "nomnom":        "1.0.0",
    "stylus":        ">= 0.13.7",
    "async":         ">= 0.1.9",
    "yaml":          ">= 0.2.1",
    "file":          ">= 0.1.1",
    "stitch":        ">= 0.3.2",
    "uglify-js":     ">= 1.0.6"
  },
  "devDependencies": {
    "coffee-script": ">= 1.1.1",
    "express":       ">= 2.4.3",
    "nodeunit":      ">= 0.5.3",
    "zombie":        ">= 0.9.7"
  }

问题当然是最初安装的咖啡脚本是 1.4,我需要使用 1.2 进行编译。我尝试在依赖项部分将 package.json 更改为“coffee-script”:“1.2”,然后运行“cake setup”。但这并没有改变什么。我在哪里错了,或者我在接近这一切都是错的?

我在同一系统上有一份正确版本的咖啡脚本(1.2)的本地副本,但我不知道如何指出早午餐使用该版本而不是安装在其子目录中的版本。

任何帮助表示赞赏。谢谢

4

1 回答 1

1

npmnode_modules可以在项目文件旁边的节点中本地安装依赖项,package.json如果npm install使用-g标志运行(通常在 中/usr/local/lib/node_modules/),则可以全局安装依赖项。

正如您所注意到的,您似乎在全局和本地安装了不同版本的咖啡脚本,并且您想强制 brunch-0.8.1 使用咖啡脚本 1.2。这是我要尝试的:

  • 和之前一样,更改coffee-script1.2.package.json
  • 删除刚才编辑的node_modules目录中的目录。package.json
  • 在同一目录下运行npm install,它将读取更新版本的已编辑 package.json 文件并重新安装所有依赖项node_modules

这些步骤会将您的本地咖啡脚本副本设置为 1.2。通过查看 中的version属性来确认这一点node_modules/coffee-script/package.json

但是,这仍然可能不起作用:

  • cake setup命令可能正在尝试执行咖啡脚本的全局版本。

我不确定该cake setup任务如何寻找咖啡脚本的细节,但如果它确实适用于本地安装的版本,那么你应该很高兴。

如果没有,您需要执行npm uninstall -g coffee-script并遵循它,npm install -g npm install coffee-script@1.2这会将您的咖啡脚本的全球1.2版本设置为.

希望这可以帮助。在 npm 中找出依赖关系可能会很棘手,但是当有疑问时查看package.json文件版本和运行npm list <package name>可能会很有用。

于 2012-11-04T20:46:06.340 回答