花了很多时间试图找到这个东西,但无济于事。我确信它就像语法一样简单,但也许我一直在盯着这个问题太久了。我正在尝试为旧代码构建开发环境。由于当前代码库的大小,重构不是一种选择。
最大的问题当然是我试图模仿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)的本地副本,但我不知道如何使用该早午餐而不是安装在其子目录中的早午餐。
感谢任何帮助。感谢
答案 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
会很有用。