簡體   English   中英

Travis - 控制哪個節點版本用於NPM安裝

[英]Travis - Control Which Node Version is used for NPM Installs

我試圖安裝一個npm包 (markdown-pdf)作為我的Travis-CI構建的一部分,我認為它與舊版本的Node不兼容。 在我的本地機器上,我運行節點版本0.10.36,它在這里工作,所以我添加了我認為是在.travis.yml文件頂部定義特定版本的可接受方式(雖然我是也不清楚)。 完整文件的MCVE版本如下。

language: node_js
node_js:
- "0.10"
install:
- sudo apt-get install npm
- npm config set registry http://registry.npmjs.org/
- sudo npm install -g markdown-pdf
script:
- echo "stuff was installed."

在構建日志的頂部,我看到以下內容,這似乎表明我的更改有效:

$ nvm install 0.10
######################################################################## 100.0%
Now using node v0.10.40
$ node --version
v0.10.40
$ npm --version
1.4.28
$ nvm --version
0.23.3

但是,在日志中,當travis嘗試執行sudo npm install -g markdown-pdf ,日志會報告以下內容。 請注意,它表明程序包可能與安裝的Node版本不兼容,並聲稱我使用的是Node v0.6.12

$ sudo npm install -g markdown-pdf
npm http GET http://registry.npmjs.org/markdown-pdf
npm http 200 http://registry.npmjs.org/markdown-pdf
npm ERR! Error: No compatible version found: markdown-pdf
npm ERR! No valid targets found.
npm ERR! Perhaps not compatible with your version of node?
npm ERR!     at installTargetsError (/usr/share/npm/lib/cache.js:488:10)
npm ERR!     at next_ (/usr/share/npm/lib/cache.js:438:17)
npm ERR!     at next (/usr/share/npm/lib/cache.js:415:44)
npm ERR!     at /usr/share/npm/lib/cache.js:408:5
npm ERR!     at saved (/usr/share/npm/lib/utils/npm-registry-client/get.js:147:7)
npm ERR!     at Object.oncomplete (/usr/lib/nodejs/graceful-fs.js:230:7)
npm ERR! You may report this log at:
npm ERR!     <http://bugs.debian.org/npm>
npm ERR! or use
npm ERR!     reportbug --attach /home/travis/build/ahemmeter/ahemmeter.github.io/npm-debug.log npm
npm ERR! 
npm ERR! System Linux 2.6.32-042stab108.3
npm ERR! command "node" "/usr/bin/npm" "install" "-g" "markdown-pdf"
npm ERR! cwd /home/travis/build/ahemmeter/ahemmeter.github.io
npm ERR! node -v v0.6.12
npm ERR! npm -v 1.1.4
npm ERR! message No compatible version found: markdown-pdf
npm ERR! message No valid targets found.
npm ERR! message Perhaps not compatible with your version of node?
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/travis/build/ahemmeter/ahemmeter.github.io/npm-debug.log
npm not ok

我想我已經提供了足夠的信息,但您也可以查看項目的公共構建日志以及它正在構建的github存儲庫

我在聲明要使用哪個版本的Node時犯了錯誤嗎? 我是否需要(或應該)為npm,nvm和markdown-pdf做類似的事情? 如何強制npm-install使用較新版本的Node而不是舊版本?

請注意,我將存儲庫設置為通過HTTP而不是HTTPS下載。 當我這樣做時,錯誤消息從“未能從注冊表中獲取:markdown-pdf”更改為“找不到兼容版本:markdown-pdf”,這似乎是朝着正確方向邁出的一步,所以我保留了它; 但是,我在這里提到它,以防它可能導致沖突。

為了在使用node.js時指定依賴關系,travis似乎期望一個package.json文件。 您還可以使用它來指定要下載的節點包的版本。

.travis.yml

language: node_js
node_js:
- "0.10"
script:
- echo "stuff was installed."

的package.json

{
  "name" : "ahemmeter.github.io",
  "version" : "0.0.0",
  "dependencies" : {
    "markdown-pdf" : "5.3.x"
  }
}

OP的注意事項:這是我找到的答案,但如果有人發布了一個不涉及使用package.json文件的答案(這只是一個測試套件而不是一個軟件包,我不想將它作為一個軟件包發布),我會將答案標記為已接受。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM