2017-03-15 414 views
1

所以我有一個應用程序引入一些依賴關係。我已經想通了如何鎖定那些下來很容易,因此我的package.json看起來像這樣:NPM鎖定依賴包中的依賴版本package.json

"webpack": "2.2.1", 

太好了!所以webpack被鎖定到該版本,但我注意到了webpack中的一些package.json。他們沒有鎖定他們的依賴:

"dependencies": { 
    "acorn": "^4.0.4", 
    "acorn-dynamic-import": "^2.0.0", 
    "ajv": "^4.7.0", 
    "ajv-keywords": "^1.1.1", 
    "async": "^2.1.2", 
    "enhanced-resolve": "^3.0.0", 
    "interpret": "^1.0.0", 
    "json-loader": "^0.5.4", 
    "loader-runner": "^2.3.0", 
    "loader-utils": "^0.2.16", 
    "memory-fs": "~0.4.1", 
    "mkdirp": "~0.5.0", 
    "node-libs-browser": "^2.0.0", 
    "source-map": "^0.5.3", 
    "supports-color": "^3.1.0", 
    "tapable": "~0.2.5", 
    "uglify-js": "^2.8.5", 
    "watchpack": "^1.2.0", 
    "webpack-sources": "^0.2.0", 
    "yargs": "^6.0.0" 
    }, 

所以有一天我們的應用紡了容器上搶下的WebPack 2.2.1像它應該有,但抓住了造成問題的我們生產的最新醜化-JS應用程序。

是否有強制執行我們的依賴關係正在使用的依賴的版本?

+0

從你的package.json中刪除uglify,並進入webpack目錄,並檢查它的package.json,看看有沒有uglify^2.8.5。我認爲它被覆蓋,並使用最新的 – Alan

回答

2

npm shrinkwrap是我正在尋找和需要。