如何强制早午餐0.8.1使用coffeescript 1.2

时间:2012-10-29 13:25:02

标签: node.js coffeescript version npm brunch

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

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

节点v0.6.11 npm v1.1.1 早午餐v0.8.1 coffee-script 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"
  }

问题当然是最初安装的coffeescript是1.4,我需要编译1.2。我已经尝试将package.json更改为“coffee-script”:依赖项部分中的“1.2”,然后运行“cake setup”。但这并没有改变任何事情。我在哪里错了,或者我接近这一切都错了?

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

感谢任何帮助。感谢

1 个答案:

答案 0 :(得分:1)

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

正如您所注意到的,看起来您在全局和本地安装了不同版本的咖啡脚本,并且您希望强制使用早午餐-0.8.1来使用咖啡脚本1.2。这是我要尝试的:

  • 正如您之前所做的那样,将coffee-script更改为1.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} }。

希望这会有所帮助。在npm中找出依赖项内容可能很棘手,但如果对1.2文件版本有疑问,运行package.json会很有用。