2017-02-23 69 views
3

UPDATE TL; DR 感謝爲@思南 - bolel我現在知道的命令的WebPack建立自己的錯誤

npm ls --depth=0 

準確地顯示當前安裝 NPM包。這讓我陷入了一半。現在區分工作和不工作node_modules。

原來的問題

如何更新我的package.json,以反映我的項目,而不是什麼中的package.json所有本地安裝的軟件包?

好,所以webpack停止建設沒有提示。 這在桌面上發生,稱爲PC_A。

PC_B有一個工作設置,從Visual Studio代碼運行(使用PowerShell)。 當PC_A網站被破壞時,我的反應很簡單。 只需刪除PC_A的源代碼並從SVN更新即可。這恢復了捆綁錯誤之前的文件,並應該很容易得到備份和運行..

只需運行npm install重新安裝所有node_modules(這是保留在SVN外),你很好去向右?沒有。

在使用npm install重新安裝後,Webpack仍然會生成相同的生成錯誤。 (據我所知讀取的package.json和安裝包爲指定) 運行NPM運行構建以下錯誤生成:

node_modules\extract-text-webpack-plugin\schema\validator.js:11 
      throw new Error(ajv.errorsText()); 
    ^
Error: data['sourceMap'] should NOT have additional properties 

奇怪的解決方法: 我拉上我的整個node_modules地圖,並轉移到PC_A和放置正確。現在webpack構建得很好。 所以我認爲必須有一些東西在PC_B上的node_modules修復了這個問題,這就是爲什麼我想更新我的package.json。然而,我不想使用npm upgrade --save(-dev),因爲這會將本地軟件包AND package.json更新爲最新版本。我想用本地版本填充package.json。

我已經試過:

npm upgrade --save & npm upgrade --save-dev 
npm shrinkwrap (looks promising but doesnt update package.json) 
manual updating, tedious and not really scaleable) 
npm ls --depth=0 (works perfect, showing all installed packages! Now to find the culprit) 

'不工作node_modules' NPM LS --depth = 0產生:

[email protected] C:\brokenapp 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @types/[email protected] 
+-- @types/[email protected] 
+-- @types/[email protected] 
+-- @types/[email protected] 
+-- @types/[email protected] 
+-- @types/[email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- UNMET PEER DEPENDENCY [email protected] 
`-- [email protected] 

npm ERR! peer dep missing: [email protected]^2.2.0, required by [email protected] 
npm ERR! peer dep missing: [email protected]^2.2.0, required by [email protected] 

'工作node_modules' NPM LS --depth = 0產生:

[email protected] C:\app 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected]2.0.2 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @easy-webpack/[email protected] 
+-- @types/[email protected] 
+-- @types/[email protected] 
+-- @types/[email protected] 
+-- @types/[email protected] 
+-- @types/[email protected] 
+-- @types/[email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- UNMET PEER DEPENDENCY [email protected] 
`-- [email protected] 

npm ERR! peer dep missing: [email protected]^2.2.0, required by [email protected] 
npm ERR! extraneous: [email protected] C:\app\node_modules\wait-on\node_modules\moment 

那麼,如何區分不工作和工作來找到導致錯誤的包?

+0

您可以在PC_A/B上運行'npm ls --depth = 0'並將列出的軟件包版本與package.json中指定的軟件包版本相互比較。你可以添加一個你的package.json和'npm ls'的輸出嗎? –

+1

將嘗試這個星期一的第一件事@SinanBolel – DGRFDSGN

+0

聽起來不錯,謝謝! –

回答

2

您可以使用npm ls --depth=0列出項目的已安裝軟件包。

在PC_A和PC_B上運行它,然後將兩臺機器上列出的軟件包版本與package.json中指定的軟件包版本進行比較。這將允許你找到任何差異。

您也可以通過從軟件包中的版本號中刪除^>=等來將軟件包鎖定到精確版本。json依賴性來確保在package.json文件中指定的確切版本是被安裝的版本。

有關版本控制標準的更多信息,請參閱semver文檔。

+0

我已經將兩個pc的結果添加到了我的原始問題中,也許你可以幫助我找到罪魁禍首了? – DGRFDSGN

+0

我建議把這些列表放在一起找出差異......就像**第一行**中的那個。 –

+0

是的,這就是我所做的,除了差異如下: PC_A for gigp v。1.0.0和PC_B gulp v^2.0.0,^ =>使得很難欺騙版本,並想出一個「剎車」安裝在一個乾淨的設置上,對所有版本號進行硬編碼並不能解決這個問題。可以這麼說:/ – DGRFDSGN

相關問題