我已經搜索了wiki模塊頁面,但找不到類似於virtualenv(python)或rvm的任何內容。有沒有node.js的虛擬環境?
這裏的任何人在他們自己的環境中分離node.js?我真的不喜歡在系統範圍內安裝npm。
我已經搜索了wiki模塊頁面,但找不到類似於virtualenv(python)或rvm的任何內容。有沒有node.js的虛擬環境?
這裏的任何人在他們自己的環境中分離node.js?我真的不喜歡在系統範圍內安裝npm。
如果系統範圍的npm包是你的主要問題,那麼也許考慮在npm中使用非常酷的'bundle'命令。這更接近於凍結寶石或在rails中使用bundler,而不是rvm。
這很容易。只要創建一個文件的package.json:
{ "name": "yourapp", "version": "0.0.1", "dependencies": {"jade": "0.4.1"}}
,然後運行:
npm bundle vendor
,或者如果您的NPM版本爲> = 1.0運行:
npm install
凍結在供應商目錄。然後使用:
require.paths.unshift('./vendor');
如果您只是想同時安裝不同版本的node.js和npm,則Nvm非常適用。其餘的我發現它已經足夠使用npm將需要的模塊安裝到項目目錄中。 – 2012-03-13 03:11:47
如果您在查看'nvm'或'n'並且希望在更改目錄時自動切換,請查看'avn':https://github.com/wbyoung/avn – wbyoung 2015-05-11 21:53:46
bxjx的回答是概念準確。但是請注意,bundle命令不再需要一個目錄。它總是將包放入node_modules
文件夾,以便npm知道以後在哪裏找到它們(並且可以避免重複安裝的依賴關係)。
任何解決方案可能會涉及到安裝NPM和殿「全系統」(也就是,在你的PATH
,這可能是在某個地方~
),但隨後只在虛擬環境中安裝的特定的相關。
我回答得更徹底on the github issue。
tl; dr:該用例是有效的和有幫助的,儘管它大部分在那裏,但它的效果並不盡如人意。我們應該確保思考並做對。
nodeenv - 爲node.js的(模擬virtualenv)
這看起來確實很棒,但我無法在node.js被編譯的同時通過nodeenv完成npm安裝(在osx Lion上)。也許我只是可以使用nvm install併爲每個nodeenv單獨安裝npm ...在我嘗試使用它的時候,我已經使用其他方法完成了多個節點版本。 – 2012-03-13 03:16:45
可用於在現有Python虛擬環境中安裝_within_,以便在Python環境中激活'node.js'環境。 請參見['nodeenv -p'](https://github.com/ekalinin/nodeenv)。 – naitsirhc 2014-06-01 11:53:51
nodeenv(實際上是virtualenv + nodeenv)也適用於魚貝殼用戶,因爲nave和其他人不支持除bash和zsh以外的任何其他shell。 – akarca 2014-10-30 09:39:24
如果你喜歡它的簡單,我是真的建議visionmedia的n,再簡單不過了虛擬環境!
你並不總是需要安裝依賴全球。通常這是推薦的,因爲你可以使用npm包提供的命令,但是如果你在本地安裝(在node_modules
)目錄下,你也可以使用這些命令,它們只能在node_modules/.bin/
目錄中,所以你必須鍵入node_modules/.bin/<command>
,這很煩人,但你可以在這個路徑當然添加到您的PATH
環境變量:
export PATH=node_modules/.bin:$PATH
然後,你可以只輸入<command>
和它的作品!
實際上,有一個返回到.bin
目錄的絕對路徑的NPM命令:
$ npm bin
/path/to/node_modules/.bin
此命令也可當你在項目中的子目錄的時候,它會返回第一個node_modules/.bin
目錄找到在它的父目錄中。
您可以在.bashrc
添加此別名自動.bin/
目錄添加到您的PATH
:
alias nodebin='export PATH=$(npm bin):$PATH'
所以,當你在具有在根目錄node_modules/
一個項目的目錄,你可以鍵入,然後您可以使用.bin/
目錄中的所有命令!
我認爲沒有安裝節點的節點環境工作沒有任何意義。這就像你想在python項目上工作時沒有安裝python和pip一樣!當然對於使用virtualenv和virtualenvwrapper,pre-require是python。
如果你想在一個Node項目上工作,至少安裝node和npm是非常正常的。
如果您只是想在Web上運行一個python項目(例如使用Django),則可以使用JavaScript文件的構建版本並將此文件加載到您的項目中。
npm包不起作用。沒有被識別爲命令 – andho 2012-02-07 05:51:32
@andho自己沒有測試過這個,但是我明白最近的NPM版本只是使用'npm install'。 – 2012-02-10 23:02:48
現在已經測試和確認。我相信''npm install'取代了NPM 1.0以後的'npm bundle'。 – 2012-02-11 19:01:51