Webpack构建错误

3

更新简述 感谢@sinan-bolel,我现在知道了命令

npm ls --depth=0

以下内容准确地显示了当前已安装的npm软件包。这让我有些头疼。现在需要区分工作中和不工作的node_modules。
原问题:如何更新package.json以反映项目中所有本地安装的软件包,而不是package.json中的软件包?
好的,所以webpack突然停止了构建,没有任何提示。 这发生在桌面电脑PC_A上。
PC_B拥有一个良好的设置,可以从Visual Studio Code(带powershell)运行。 当PC_A网站被破坏时,我的反应是,啊,很容易解决。 只需从PC_A中删除源文件并从SVN更新即可。 这将恢复捆绑错误之前的文件,并应该很容易重新运行。
只需运行npm install重新安装所有node_modules(它们不包含在SVN中),您就可以轻松完成,是吗?不是的。
即使重新安装了npm install后,Webpack仍会生成相同的构建错误。(据我所知,它读取package.json并按规定安装软件包) 运行npm run build将生成以下错误:
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),因为这会将本地包和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 的输出结果如下:
aurelia-skeleton-navigation-webpack@1.0.2 C:\brokenapp
+-- @easy-webpack/config-aurelia@2.2.4
+-- @easy-webpack/config-babel@2.0.4
+-- @easy-webpack/config-common-chunks-simple@2.0.3
+-- @easy-webpack/config-copy-files@1.1.2
+-- @easy-webpack/config-css@2.5.0
+-- @easy-webpack/config-env-development@2.1.6
+-- @easy-webpack/config-env-production@2.2.4
+-- @easy-webpack/config-external-source-maps@2.0.2
+-- @easy-webpack/config-fonts-and-images@1.2.2
+-- @easy-webpack/config-generate-index-html@2.1.1
+-- @easy-webpack/config-global-bluebird@1.3.3
+-- @easy-webpack/config-global-jquery@1.4.1
+-- @easy-webpack/config-global-regenerator@1.3.0
+-- @easy-webpack/config-html@2.0.3
+-- @easy-webpack/config-json@2.0.3
+-- @easy-webpack/config-source-map-support@1.0.2
+-- @easy-webpack/config-test-coverage-istanbul@2.0.3
+-- @easy-webpack/config-typescript@2.1.4
+-- @easy-webpack/config-uglify@2.2.3
+-- @easy-webpack/core@1.4.5
+-- @types/bluebird@2.0.31
+-- @types/d3@4.4.0
+-- @types/jasmine@2.5.43
+-- @types/leaflet@1.0.41
+-- @types/turf@3.5.32
+-- @types/whatwg-fetch@0.0.27
+-- aurelia-bootstrapper-webpack@1.0.0
+-- aurelia-dialog@1.0.0-beta.3.0.1
+-- aurelia-event-aggregator@1.0.0
+-- aurelia-fetch-client@1.0.1
+-- aurelia-framework@1.0.7
+-- aurelia-history-browser@1.0.0
+-- aurelia-loader-webpack@1.0.3
+-- aurelia-logging-console@1.0.0
+-- aurelia-pal-browser@1.0.0
+-- aurelia-polyfills@1.1.1
+-- aurelia-route-recognizer@1.1.0
+-- aurelia-router@1.0.7
+-- aurelia-templating-binding@1.0.0
+-- aurelia-templating-resources@1.1.1
+-- aurelia-templating-router@1.0.0
+-- aurelia-tools@0.2.4
+-- babel-plugin-transform-decorators-legacy@1.3.4
+-- babel-preset-es2015@6.22.0
+-- babel-preset-es2015-loose@7.0.0
+-- babel-preset-es2015-loose-native-modules@1.0.0
+-- babel-preset-stage-1@6.22.0
+-- babel-register@6.23.0
+-- bluebird@3.4.6
+-- bootstrap@3.3.7
+-- concurrently@2.2.0
+-- cross-env@2.0.1
+-- d3@4.3.0
+-- d3-tile@0.0.3
+-- font-awesome@4.7.0
+-- http-server@0.9.0
+-- isomorphic-fetch@2.2.1
+-- jasmine-core@2.5.2
+-- jquery@3.1.1
+-- karma@1.5.0
+-- karma-chrome-launcher@1.0.1
+-- karma-coverage@1.1.1
+-- karma-jasmine@1.1.0
+-- karma-mocha-reporter@2.2.2
+-- karma-remap-istanbul@0.1.1
+-- karma-sourcemap-loader@0.3.7
+-- karma-webpack@1.8.1
+-- leaflet@1.0.1
+-- lodash@4.16.6
+-- moment@2.15.2
+-- protractor@4.0.14
+-- rimraf@2.6.1
+-- topojson@2.2.0
+-- ts-node@1.7.3
+-- turf@3.0.14
+-- typescript@2.1.1
+-- wait-on@1.5.4
+-- UNMET PEER DEPENDENCY webpack@2.1.0-beta.22
`-- webpack-dev-server@2.4.1

npm ERR! peer dep missing: webpack@^2.2.0, required by webpack-dev-server@2.4.1
npm ERR! peer dep missing: webpack@^2.2.0, required by extract-text-webpack-plugin@2.0.0

'Working node_modules' npm ls --depth=0 产生以下结果:

aurelia-skeleton-navigation-webpack@1.0.2 C:\app
+-- @easy-webpack/config-aurelia@2.2.3
+-- @easy-webpack/config-babel@2.0.4
+-- @easy-webpack/config-common-chunks-simple@2.0.3
+-- @easy-webpack/config-copy-files@1.1.2
+-- @easy-webpack/config-css@2.5.0
+-- @easy-webpack/config-env-development@2.1.6
+-- @easy-webpack/config-env-production@2.2.4
+-- @easy-webpack/config-external-source-maps@2.0.2
+-- @easy-webpack/config-fonts-and-images@1.2.2
+-- @easy-webpack/config-generate-index-html@2.1.1
+-- @easy-webpack/config-global-bluebird@1.3.3
+-- @easy-webpack/config-global-jquery@1.4.1
+-- @easy-webpack/config-global-regenerator@1.3.0
+-- @easy-webpack/config-html@2.0.3
+-- @easy-webpack/config-json@2.0.3
+-- @easy-webpack/config-source-map-support@1.0.2
+-- @easy-webpack/config-test-coverage-istanbul@2.0.3
+-- @easy-webpack/config-typescript@2.1.4
+-- @easy-webpack/config-uglify@2.2.3
+-- @easy-webpack/core@1.4.5
+-- @types/bluebird@2.0.31
+-- @types/d3@4.4.0
+-- @types/jasmine@2.5.41
+-- @types/leaflet@1.0.41
+-- @types/turf@3.5.32
+-- @types/whatwg-fetch@0.0.27
+-- aurelia-bootstrapper-webpack@1.0.0
+-- aurelia-dialog@1.0.0-beta.3.0.1
+-- aurelia-event-aggregator@1.0.0
+-- aurelia-fetch-client@1.0.1
+-- aurelia-framework@1.0.7
+-- aurelia-history-browser@1.0.0
+-- aurelia-loader-webpack@1.0.3
+-- aurelia-logging-console@1.0.0
+-- aurelia-pal-browser@1.0.0
+-- aurelia-polyfills@1.1.1
+-- aurelia-route-recognizer@1.1.0
+-- aurelia-router@1.0.7
+-- aurelia-templating-binding@1.0.0
+-- aurelia-templating-resources@1.1.1
+-- aurelia-templating-router@1.0.0
+-- aurelia-tools@0.2.4
+-- babel-plugin-transform-decorators-legacy@1.3.4
+-- babel-preset-es2015@6.22.0
+-- babel-preset-es2015-loose@7.0.0
+-- babel-preset-es2015-loose-native-modules@1.0.0
+-- babel-preset-stage-1@6.22.0
+-- babel-register@6.22.0
+-- bluebird@3.4.6
+-- bootstrap@3.3.7
+-- concurrently@2.2.0
+-- cross-env@2.0.1
+-- d3@4.3.0
+-- d3-tile@0.0.3
+-- font-awesome@4.7.0
+-- http-server@0.9.0
+-- isomorphic-fetch@2.2.1
+-- jasmine-core@2.5.2
+-- jquery@3.1.1
+-- karma@1.4.0
+-- karma-chrome-launcher@1.0.1
+-- karma-coverage@1.1.1
+-- karma-jasmine@1.1.0
+-- karma-mocha-reporter@2.2.2
+-- karma-remap-istanbul@0.1.1
+-- karma-sourcemap-loader@0.3.7
+-- karma-webpack@1.8.1
+-- leaflet@1.0.1
+-- lodash@4.16.6
+-- moment@2.15.2
+-- protractor@4.0.14
+-- rimraf@2.5.4
+-- topojson@2.2.0
+-- ts-node@1.7.3
+-- turf@3.0.14
+-- typescript@2.1.1
+-- wait-on@1.5.4
+-- UNMET PEER DEPENDENCY webpack@2.1.0-beta.22
`-- webpack-dev-server@2.2.0

npm ERR! peer dep missing: webpack@^2.2.0, required by webpack-dev-server@2.2.0
npm ERR! extraneous: moment@2.15.1 C:\app\node_modules\wait-on\node_modules\moment

那么我如何区分无法工作和正在工作以定位导致错误的软件包?

您可以在PC_A / B上运行npm ls --depth = 0,并将列出的软件包的版本与package.json中指定的版本以及彼此进行比较。您能否添加一个Gist,其中包含您的package.json和npm ls的输出? - sbolel
1
我会在周一第一时间尝试这个,@SinanBolel。 - DGRFDSGN
好的,谢谢! - sbolel
太棒了@DGRFDSGN,很高兴听到你取得了进展,期待看到我们是否能解决这个问题。如果您有任何其他问题,请告诉我! - sbolel
1
同意,我也已经从另一个开发者那里移除了所有的^作为提示。希望我能找到导致构建错误的软件包,因为一个没有被修复的错误将会和它的伙伴们一起回来。:( - DGRFDSGN
显示剩余4条评论
1个回答

2
您可以使用npm ls --depth=0命令来列出项目中安装的软件包。
在PC_A和PC_B上运行此命令,然后将两台机器上列出的软件包版本与package.json文件中指定的版本进行比较,以查找任何差异。
您还可以通过从package.json依赖项的版本号中删除^>=等符号,锁定软件包的确切版本,以确保安装的是package.json文件中指定的确切版本。
有关版本控制标准的更多信息,请参阅semver文档。

我已经将两台电脑的结果添加到我的原始问题中,也许你可以帮我找到罪魁祸首? - DGRFDSGN
1
我建议将列表并排放置以查找差异...就像第一行中的那个。 - sbolel
是的,这就是我所做的,除了以下差异:例如,PC_A使用gulp v. 1.0.0而PC_B使用gulp v^2.0.0,^ => 这使得难以辨别版本并确定哪个版本在干净的设置上“破坏”安装。硬编码所有版本号并没有解决这个问题。可以说是撞墙了 :/ - DGRFDSGN
@DGRFDSGN,你能解决这个问题吗? - sbolel
不,我们最终放弃了整个项目,主要是因为团队在资金上遇到了问题,我相信通过使用npm检查版本,软件包-版本-问题可以得到解决。顺便说一句:这是在我们团队中没有人真正精通node.js的时候,项目最初是由一个全栈大师建立的,他离开后我们被迫接手。我们吸取了教训,要把所有知识分享给同事们。 - DGRFDSGN

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接