2016-02-06 63 views
1

是否可以將一組NPM安裝文件和相關文件從Mac計算機複製到Windows計算機,並使所有這些文件都能正常工作?NPM是否依賴於計算機的操作系統?

例如,將Node.js文件與其他一些NPM文件從Mac傳輸到Windows,然後在該目錄中(在Windows命令提示符下)運行node app.js

謝謝! :)

+3

你是什麼意思「轉移Node.js文件與其他一些NPM文件」?你的意思是件或實際npm和node.js安裝或從你的依賴項的東西?無論哪種方式,您都可能遇到問題,特別是如果您的其中一個模塊使用某種類型的節點gyp模塊,可能會使其與平臺和架構相關。這就是封裝管理器的重點,來封裝這些問題併爲你處理。你想做什麼? – zero298

+0

@ zero298 - 通過傳遞我的意思是發送一個項目文件的文件夾。我嘗試刪除'node-modules'文件夾,並使用'npm install'。我得到的錯誤是:'[錯誤:%1不是有效的Win32應用程序。 D:\〜\ node_modules \ mongodb \ node_modules \ bson \ build \ Releas e \ bson.node] js-bson:無法加載C++ bson擴展,使用純JS版本 fs.js:844 return binding.stat(pathModule._makeLong(path));' –

+0

是npm二進制文件本身是相關的,它所做的下載也是相關的。你不能從一臺PC複製一個npm實例到一個MAC,它不會工作,或者提交node_modules並在另一個系統中使用,它也不會工作 –

回答

1

包含本機插件/依賴關係的NPM軟件包與OS + NodeJS版本綁定,必須針對您打算使用它們的系統重新構建。這就是爲什麼你看到錯誤提到bson.node,它是一個必須重建的本機插件,這可以通過npm rebuild command完成。

+0

我試過'npm rebuild',但是它回來了'> [email protected] install〜\ node_modules \ mongodb \ node_modules \ bson >(node-gyp rebuild 2> builderror.log)|| (出口0) 〜\ node_modules \ mongodb \ node_modules \ bson>如果沒有定義n pm_config_node_gyp(節點「C:\ Program Files \ nodejs \ node_modules \ npm \ bin \ node-gyp- bin \\ .. \」。 (節點重建 ) 終止批處理作業(是/否)?(節點重建)' –

+0

確保你已經設置好你的Windows機器來構建本機插件:https://github.com/Microsoft/nodejs-guidelines/blob/master/windows-environment.md#environment-setup-and-configuration –

1

安裝的二進制文件npm與平臺相關,與node.js相同。這就是爲什麼下載站點上的每個平臺都有不同的版本。

大多數情況下,您的項目文件是獨立於平臺的。例如,大多數JavaScript文件都將被node.js使用,並且工作得很好,而不必擔心自己在哪個平臺上,因爲系統細節將由node.js本身處理。

但是,一些模塊平臺相關。例如,任何使用node-gyp的東西都會嘗試在您的平臺上通過npm安裝模塊進行編譯。你不必擔心,因爲它是由npm處理的,這就是你使用包管理器的原因。

複製node_modules可以完成;但是在任何要運行應用程序的機器上運行npm i往往並非更好也更容易。您可以避免使用類似npm shrinkwrap之類的問題來擔心版本問題,這些問題會鎖定模塊依賴的軟件包版本。

相關問題