我正在尝试安装npm一揽子方案 (markdown-pdf)作为我的Travis-CI构建的一部分,我认为它与Node的旧版本不兼容。在我的本地机器上,我运行的是NodeVersion0.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版本不兼容,它声称我使用的是Nodev0.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储存库。
我在声明使用哪个版本的节点时犯了错误吗?我需要(或者应该)为npm、nvm和markdown-pdf做类似的事情吗?如何强制npm安装使用较新版本的Node而不是旧版本?
注意,我将存储库设置为通过HTTP下载,而不是HTTPS。当我这样做时,错误信息从“未能从注册表获取: markdown-pdf”更改为“无兼容版本发现: markdown-pdf",这似乎是朝着正确的方向迈出的一步,因此我保留了它;但是,我在这里提到它,以防它可能导致冲突。
发布于 2015-07-14 18:17:12
为了在使用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"
}
}注意:这是我找到的答案,但是如果有人发布了一个不涉及使用package.json文件的答案(这只是一个测试套件,而不是一个包,我不想把它作为一个包发布),我会将这个答案标记为接受。
https://stackoverflow.com/questions/31412752
复制相似问题