考慮的Python現在:在nodejs中是否有與Python的virtualenv等價的東西?
- 你可以有解釋,比如說,2.7的單個實例。
- 您可以全局安裝virtualenv及其包裝器(只要您有權限)。
- 您可以創建多個Python環境並安裝像Django一樣需要的全局包。
- 激活解釋器後,您可以運行
django-admin.py
(環境中可用的全局命令)並創建一個django項目。 - 一旦你有你的Django項目,你可以運行
python manage.py
在你的項目中運行一個命令。 - 也許您可以在項目中安裝
pundle
以安裝特定於項目而不是環境範圍的軟件包。
這樣,您就可以在包含某個項目的項目中,在包含特定範圍的包的環境中提供自己的命令行來執行。你在這裏安裝了一個單一解釋器,*對於同一個解釋器,你可以安裝幾個不同的Django版本(每個版本你需要一個不同的環境,但每個版本的python解釋器都有別名)。
現在我想考慮一下nodejs和諸如react,cordova,sails,meteor等類似的東西......只要它們提供命令行,您可以選擇一個選項。
- 我第一次安裝nodejs,並且安裝npm和nvm。
- 我使用nvm安裝特定版本的節點。也許我必須手動將節點別名節點轉換爲nodejs,反之亦然,因爲很多包都是怪異的。
- 而不是Django我想創建一個Cordova/Ionic應用程序與一個特定的科爾多瓦版本,所以我
npm install -g ionic
在一個特定的nvm選擇版本。 - 相當於Pundle,
npm
對我的應用程序有內在的支持。 - 如果我想爲我的項目提供我的科爾多瓦版本的特定命令,我可以運行一個像npm run cordova -- build android而不是
cordova build android
。
但是,這給我帶來了一個問題:對於在同一節點解釋的版本,我可以有只有一個全局科爾多瓦或離子或任何我想要的。這意味着:如果我想使用特定版本的nodejs,並且有兩個項目需要不同版本的必需命令行,那麼我無法運行全局命令來創建此類項目。例如:
$ NVM使用mynodeversion $離子開始對myApp
我將在命令中使用的離子的特定版本,這將產生對我的項目是版本特有的樣板。假設離子版本是x1.y1.z1。
現在我想創建一個離子版本爲x2.y2.z2的項目。但是,如果我嘗試這樣做:
$ NVM使用mynodeversion $離子開始對myApp
我會生成它的版本x1.y1.z1爲同一解釋,無論是哪個版本的離子是在我的package.json中引用。
在使用virtualenvs自動解決的Python中:您可以擁有特定的Python解釋器,可以創建許多不同的環境,安裝不同版本的框架,在每個virtualenv上安裝不同的版本,併爲您的項目生成不同版本的樣板,將與相應的版本兼容。
我的問題是:我怎樣才能做到與nodejs相同?提供但不限於給出的示例(另一個示例可能會出現在sails或react-native中)。
通過這樣做,我必須像'node_modules/.bin/ionic'一樣調用它,但是我的npm腳本只能使用'ionic'。我是對的? –
是的,這是正確的 – vkurchatkin
我還注意到'npm install'沒有--save-dev也在node_modules/.bin下安裝庫二進制文件。我的問題是:使用--save-dev和通過'npm install ionic'安裝時沒有使用任何標誌(僅用於保存樣本)用於我的目的有什麼區別?你也可以通過這些指導方針的答案(因爲它是我的疑惑的一部分,我是nodejs中的n00b)。 –