我決定嘗試學習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