1
所以我刚刚在我的Mac上更新了NPM,并且它在一个项目上生成了一个锁定文件。 “嘿 - 那太棒了”我说并承诺。然后我建立在特拉维斯CI失败,出现以下:NPM package-lock.json导致npm安装在Linux上失败
Compiling Frontend Assets
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected]^1.0.0 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm ERR! Linux 4.4.0-83-generic
npm ERR! argv "/home/travis/.nvm/versions/node/v7.4.0/bin/node" "/home/travis/.nvm/versions/node/v7.4.0/bin/npm" "install"
npm ERR! node v7.4.0
npm ERR! npm v4.0.5
npm ERR! shasum check failed for /tmp/npm-9017-ad78fe01/registry.npmjs.org/hawk/-/hawk-3.1.3.tgz
npm ERR! Expected: 078444bd7c1640b0fe540d2c9b73d59678e8e1c4
npm ERR! Actual: 282a21cacac687357d149e149c408a3c0506695c
npm ERR! From: https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! <https://github.com/npm/npm/issues>
npm ERR! Please include the following file with any support request:
npm ERR! /home/travis/build/project/npm-debug.log
make: *** [frontend] Error 1
这是一个Symfony的项目,但我用NPM的SCSS,JS编译和复制图像和字体等,以web目录。我预计这可能与OSX & Linux的软件包差异有关 - 这是我之前用图像处理软件包经历的。
或者它可能是由于travis在这里使用的NPM版本?
我现在在本地机器上有5.3.0。
或者是我只是不明白npm的锁定文件?难道是它试图验证安装的软件包...
我的package.json
看起来像这样。这个问题显然是依赖于依赖关系的。我想知道是否应该只是.gitignore锁文件,如果它会导致这种冲突。而且我不确定是否需要开始确定所有版本的node和npm在运行构建的所有平台上都是相同的。
{
"name": "project",
"version": "1.0.0",
"description": "project",
"main": "index.js",
"scripts": {
... front end build scripts
},
... ,
"devDependencies": {
"autoprefixer": "^7.1.2",
"bulma": "^0.5.1",
"chokidar-cli": "^1.2.0",
"cssnano": "^3.10.0",
"font-awesome": "^4.7.0",
"jquery": "^3.2.1",
"jshint": "^2.9.5",
"mkdirp": "^0.5.1",
"node-sass": "^4.5.3",
"npm-run-all": "^4.0.2",
"postcss-cli": "^4.1.0",
"uglifyjs-folder": "^1.1.0"
}
}
您是否尝试删除'package-lock.json'和'node_modules'并再次运行'npm i'? – Jehy
我已经完成了并重新发布了它。构建通过。所以我真的不知道发生了什么 - 或者我相信这个锁文件系统......! –
@OKsure奇怪的是,预期的SHA校验和('078444bd7 ...')是该包的正确校验和,所以特拉维斯认为'282a21cac ...'有点令人费解。 – robertklep