NPM package-lock.json导致npm install在Linux上失败

所以我刚更新了我的Mac上的NPM,并在一个项目上生成了一个locking文件。 “嘿 – 那太好了”我说,并且承诺。 然后,我的构build在Travis CI上失败,如下所示:

Compiling Frontend Assets npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/chokidar/node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.2: 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的包装差异有关 – 这是我之前用image processing软件包经历的。

或者可能是由于travis在这里使用的NPM版本?

我现在在本地机器上有5.3.0。

或者是我只是不明白关于npm的locking文件? 难道是它试图validation安装的软件包…

我的package.json看起来像这样。 这个问题显然是依赖于依赖的。 我想知道是否应该只是.gitignore锁文件,如果它会导致这种冲突。 而且我不确定是否需要开始确定所有运行构build的平台上所有版本的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.jsonnode_modules然后再次运行npm i 。 Npmcaching或其他随机偏差可能是错误的。