我决定尝试学习DerbyJS,这也是我第一次了解NodeJS。在全局安装项目的依赖关系,并在没有`node_modules /`的情况下运行项目 - 如何?
我使用derby new foo
创建了一个新的Node/Derby项目。这也创建了一个node_modules/
文件夹,其中包含项目依赖的所有软件包的副本。
空白Derby项目的node_modules/
子目录大小为144 MB,包含12967个文件(原文如此!)。作为一个熟悉Ruby的RubyGems,RVM和Bundler的人,我觉得这很疯狂。我无法表达它是多么的错误(实际上我已经有了一些反对这种疯狂的坚实论证,但是StackOverflow并不是一个可供辩论的地方)。
我以为npm的-g
国旗会帮助我。我告诉自己,我可以在全球安装所有软件包。所以我做了:
derby new -n foo
cd foo
sudo npm install -g
现在我的项目重152 KB,包含24个文件。现在这是合理的。
但我无法运行它。 当我做npm start
,我得到“无法找到模块‘表达’”:
[email protected]:~/hello_derby2$ npm start
> [email protected] start /home/lolmaus/hello_derby2
> node server.js
Master pid 29884
module.js:340
throw err;
^
Error: Cannot find module 'express'
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> (/home/lolmaus/hello_derby2/lib/server/index.js:1:77)
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)
at require (module.js:380:17)
所以,问题是:如何安装项目的依赖关系到中央本地资源库和运行项目没有击败F#从我的Dropbox帐户中注销@k?
不要对抗系统。在本地安装依赖关系是一件非常好的事情,[它的完成有很好的理由](https://npmjs.org/doc/faq.html#Why-can-t-npm-just-put-everything-in-one-地点样其他包经理)。 – josh3736