2014-07-25 26 views
9

Farklı bir hedef mimariye (Linux x64) yönelik olan npm paketlerini npm'den (Windows x86) çalıştırdığım makineden yüklemeliyim. Diğer OS/mimariye yönelik paketleri indirmek için npm install bildirmenin bir yolu var mı?Farklı mimariler için node.js paketleri yükleme

+0

bir paket örneği sayabilir mi? – Breedly

cevap

1

Çoğu ikili npm paketi, kaynaktan .node ikili dosyalarını derler.

"postinstall" : "node-gyp -C node_modules/your-dependency clean configure --arch=x86_64 rebuild"

Sen düzgün bir derleyici toolchain gerekir: Gerçekten NPM ile çapraz derleme zorlayamaz, ancak muhtemelen belirli bağımlılığı yeniden derlemek için bir postinstall script oluşturabilir bir --arch bayrağıyla node-gyp yeniden çalıştırır . Ben windows için ne sot eminim ama muhtemelen OS/kemer için önceden yapılmış ikililer aramak için bir yükleme komut dosyası kullanır

+0

Kol v7 mimarisi için node-wrtc modülüne ihtiyacım var. Linux-64 bit PC'de wrtc kaynağını ve yukarıda bahsedilen düğüm-gyp dosyasını indirmeye değer mi? – vgokul129

1

En doğal düğüm modülleri node-pre-gyp kullanmak mingw veya cygwin kullanarak bitireceğiz/v8 ABI kombinasyonu ve mevcut değilse yerel yapıya geri dönüş.

varsayarsak native modüller node-pre-gyp kullanmak, bunu yapabilirsiniz:

npm i --target_arch=x64 --target_platform=linux 

Sen çıktıda böyle bir şey göreceksiniz:

> [email protected] install /home/user/myProject/node_modules/bcrypt 
> node-pre-gyp install --fallback-to-build 

[bcrypt] Success: "/home/user/myProject/node_modules/bcrypt/lib/binding/bcrypt_lib.node" is installed via remote 

bir önceden oluşturulmuş ikili bulamazsa node-pre-gyp, modülü kaynaktan oluşturmaya çalışmak için geri düşecektir.

önceden oluşturulmuş modüller indirilebilir değilseniz, ayrıca kendi aynasından & ana onları inşa etme yolu var, ama bu farklı bir soru :)

İlgili konular