0

我正在为网站授权 Team City 构建配置(使用 VueJs 完成)。它使用纱线来构建网站,问题在于它用来捆绑最终资源的 web pack。

所以构建就像做一样简单yarn run build

该构建在本地运行良好。但是在 Team City 中,它在 css-loader webpack 任务中失败并出现以下错误。

[15:13:08][Step 7/8] ERROR in ./~/css-loader!./~/vue-loader/lib/style-compiler?{"id":"data-v-45a5b6de","scoped":false,"hasInlineConfig":true}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/App.vue
[15:13:08][Step 7/8] Module build failed: SyntaxError: Unexpected token {
[15:13:08][Step 7/8]     at exports.runInThisContext (vm.js:53:16)
[15:13:08][Step 7/8]     at Module._compile (module.js:373:25)
[15:13:08][Step 7/8]     at Object.Module._extensions..js (module.js:416:10)
[15:13:08][Step 7/8]     at Module.load (module.js:343:32)
[15:13:08][Step 7/8]     at Function.Module._load (module.js:300:12)
[15:13:08][Step 7/8]     at Module.require (module.js:353:17)
[15:13:08][Step 7/8]     at require (internal/module.js:12:17)
[15:13:08][Step 7/8]     at loadLoader (D:\Program Files\BuildAgent3\work\140b0e3b148e7b10\Main\MyApp\node_modules\loader-runner\lib\loadLoader.js:13:17)
[15:13:08][Step 7/8]     at iteratePitchingLoaders (D:\Program Files\BuildAgent3\work\140b0e3b148e7b10\Main\MyApp\node_modules\loader-runner\lib\LoaderRunner.js:169:2)
[15:13:08][Step 7/8]     at iteratePitchingLoaders (D:\Program Files\BuildAgent3\work\140b0e3b148e7b10\Main\MyApp\node_modules\loader-runner\lib\LoaderRunner.js:165:10)
[15:13:08][Step 7/8]     at D:\Program Files\BuildAgent3\work\140b0e3b148e7b10\Main\MyApp\node_modules\loader-runner\lib\LoaderRunner.js:173:18
[15:13:08][Step 7/8]     at loadLoader (D:\Program Files\BuildAgent3\work\140b0e3b148e7b10\Main\MyApp\node_modules\loader-runner\lib\loadLoader.js:36:3)
[15:13:08][Step 7/8]     at iteratePitchingLoaders (D:\Program Files\BuildAgent3\work\140b0e3b148e7b10\Main\MyApp\node_modules\loader-runner\lib\LoaderRunner.js:169:2)
[15:13:08][Step 7/8]     at runLoaders (D:\Program Files\BuildAgent3\work\140b0e3b148e7b10\Main\MyApp\node_modules\loader-runner\lib\LoaderRunner.js:362:2)
[15:13:08][Step 7/8]     at NormalModule.doBuild (D:\Program Files\BuildAgent3\work\140b0e3b148e7b10\Main\MyApp\node_modules\webpack\lib\NormalModule.js:179:3)
[15:13:08][Step 7/8]     at NormalModule.build (D:\Program Files\BuildAgent3\work\140b0e3b148e7b10\Main\MyApp\node_modules\webpack\lib\NormalModule.js:268:15)
[15:13:08][Step 7/8]  @ ./~/extract-text-webpack-plugin/loader.js?{"omit":1,"remove":true}!./~/vue-style-loader!./~/css-loader!./~/vue-loader/lib/style-compiler?{"id":"data-v-45a5b6de","scoped":false,"hasInlineConfig":true}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/App.vue 4:14-261
[15:13:08][Step 7/8]  @ ./src/App.vue
[15:13:08][Step 7/8]  @ ./src/main.js

我检查了几件事,例如;

  • 比较节点版本(服务器有节点 4.x,而客户端有 6.x)
  • 比较 npm 版本(两者都有 3.10.x)
  • 比较本地和 Team City 服务器中的 node_modules
  • 检查 .babelrc 文件在 Team City 中是否可用
  • 检查服务器中的 node/npm 版本
  • 在构建之前使用 npm cache clean 并执行全新的 npm install

由于我们不拥有此“代码”,因此我很难进行任何代码更改。我们也没有人有过 VueJs 或 WebPack 的经验。另一方面,它在本地工作。会不会是节点版本?

任何想法或指针都非常感谢。

4

1 回答 1

0

这最终成为 TeamCity 服务器中节点 4 版本的限制。升级到 Node 6 后,它开始正常工作。

于 2017-05-10T03:31:19.053 回答