2017-08-18 140 views
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" 
    } 
} 
+0

您是否嘗試刪除'package-lock.json'和'node_modules'並再次運行'npm i'? – Jehy

+0

我已經完成了並重新發布了它。構建通過。所以我真的不知道發生了什麼 - 或者我相信這個鎖文件系統......! –

+0

@OKsure奇怪的是,預期的SHA校驗和('078444bd7 ...')是該包的正確校驗和,所以特拉維斯認爲'282a21cac ...'有點令人費解。 – robertklep

回答

0

請嘗試刪除package-lock.jsonnode_modules並再次運行npm i。 Npm緩存或其他隨機偏差可能有問題。