2017-06-15 52 views
0

我需要使用ansible安裝npm。我指的是Ansible 2.3:http://docs.ansible.com/ansible/npm_module.htmlAnsible從源代碼安裝npm包名(.tgz)

我已經使用npm pack coffee-script打包了npm模塊並且有coffee-script.tgz。現在我想通過使用該文件使用npm來安裝它。

我能找到最接近的是:

- name: Install "coffee-script" node.js package from custom registry. 
    npm: 
    name: coffee-script 
    registry: 'http://registry.mysite.com' 

但如何從本地文件安裝,因爲我的服務器沒有互聯網連接,所以我需要包裝,並從二進制文件安裝。

我想要做這樣的

- name: Install "coffee-script" node.js package from custom registry. 
     npm: 
     name: coffee-script 
     global : yes 
     source: '/usr/local/coffee-script.tgz' 

回答

0

事情請使用:

- name: Install "coffee-script" node.js package from custom registry. 
    npm: 
    name: /usr/local/coffee-script.tgz 
    path: /app/location 
    global: yes 
+0

我們是否需要將'path'和'global'放在同一個命令中?是不是'路徑'是我們存儲nodeJS包的地方? – HelmiB

+0

這不是必要的,但對於最佳做法,我們將其放入與應用程序相同的目錄中。 – deepak

+0

@HekmiB工作嗎? – deepak

0

我結束了使用npmbox它完美地解決我的問題。

從我的機器我運行命令npmbox coffee-script這給我coffee-script.npmbox

然後我粘貼到我的離線服務器並運行npmunbox -g coffee-script.npmbox

但是,你需要離線服務器上安裝npmunbox了。

  1. 運行:你的在線機器上npmbox npmbox
  2. npmbox.npmbox它脫機服務器
  3. 運行:tar --no-same-owner --no-same-permissions -xvzf npmbox.npmbox(或使用ansible unarhieve命令)
  4. 運行:npm install --global --cache ./.npmbox.cache --optional --cache-min 99999999999 --shrinkwrap false npmbox
  5. 現在你可以安裝任何npm離線使用npmunbox <package_name>.npmbox(例如:npmunbox pm2.npmboxnpmunbox coffee-script.npmbox