我正在使用流星和陨石的npm模块。不确定问题是否与此有关但是...我有一个小项目我正在尝试部署到流浪汉虚拟机但是当我启动它时我得到了
module.js:340
throw err;
^
Error: Cannot find module 'underscore'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/var/projects/myapp/live/programs/server/boot.js:5:9)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
我看到this question但似乎没有关联。我在开发过程中一切正常(意味着从源文件夹到部署版本)。
mrt --version报告
$ mrt --version
Meteorite version 0.7.4
Release 0.8.3
我的packages.json
对于mrt npm是
{
"winston": "0.7.3",
"winston-loggly": "1.0.1"
}
不太大。我{m}的smart.json
是
{
"packages": {
"collection-api": {},
"iron-router": {},
"npm": {}
}
}
我没有在任何地方使用require
,只有Meteor.require
我甚至尝试过
mkdir delme
cd delme
mrt create test.app
meteor bundle --directory ../live
它会创建相同的programs/server/boot.js
,包括不存在的下划线。我按照自述文件中的说明进行操作。我在自述文件中安装了fiber
和bcrypt
,就像在自述文件中提到的一样。
我尝试手动安装underscore
。然后我开始收到关于source-map-support
模块的错误。所以我补充说。然后我开始收到有关错过semver
模块的错误,因此我添加了该错误,但又丢失了另一个模块。很明显,我错过了一步或者其他什么,但我找不到运气。
想法?
所以我在虚拟盒上从头开始安装meteor
curl https://install.meteor.com | /bin/sh
meteor create test.app
meteor bundle --directory ../test
cd ../test
rm -r programs/server/node_modules/fibers
rm -r programs/server/node_modules/bcrypt
npm install fibers@1.0.1
npm install bcrypt@0.7.7
export MONGO_URL='mongodb://user:password@host:port/databasename'
export ROOT_URL='http://example.com'
node main.js
那很有效。
检查那个中的programs/server/node_modules
目录
ls test/programs/server/node_modules/
eachline fstream http-proxy keypress npm semver source-map-support underscore
esprima heapdump kexec node-aes-gcm request source-map tar
显示问题的那个是
ls /var/projects/myapp/live/programs/server/node_modules
bcrypt fibers
也许有些东西破坏了原来的meteor bundle
?
SO EMBARRASSING!问题是我的node_modules
中有.gitignore
,我正在通过git传输文件。 :P