vue-cli-service 构建抛出 E2BIG

vue-cli-service build throws E2BIG

我正在 Vue.js 2 中开发应用程序。我正在使用 Ubuntu 20.04.1 LTS。我的 package.json 文件如下所示:

{
  "name": "my-app",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },
  "dependencies": {
    "vue": "^2.6.12",
    "vue-router": "^3.4.9",
    "vuex": "^3.6.2",
    "vuex-persistedstate": "^4.0.0-beta.3",
     ...and others
  },
  "devDependencies": {
    ...some dependencies
  }
}

当我 运行 npm run build 时,我得到以下异常:

> vue-cli-service build


⠹  Building for production...internal/child_process.js:403
    throw errnoException(err, 'spawn');
    ^

Error: spawn E2BIG
    at ChildProcess.spawn (internal/child_process.js:403:11)
    at Object.spawn (child_process.js:553:9)
    at new PoolWorker (/workspace/___/___/___/node_modules/thread-loader/dist/WorkerPool.js:46:43)
    at WorkerPool.createWorker (/workspace/___/___/___/node_modules/thread-loader/dist/WorkerPool.js:341:23)
    at WorkerPool.distributeJob (/workspace/___/___/___/node_modules/thread-loader/dist/WorkerPool.js:335:28)
    at runQueue (/workspace/___/___/___/node_modules/neo-async/async.js:8099:9)
    at processTicksAndRejections (internal/process/task_queues.js:75:11) {
  errno: -7,
  code: 'E2BIG',
  syscall: 'spawn'
}
npm ERR! code 1
npm ERR! path /workspace/___/___/___
npm ERR! command failed
npm ERR! command sh -c vue-cli-service build

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/___/.npm/_logs/2021-03-08T18_57_06_018Z-debug.log

然而,当我 运行 npm run serve 时,一切正常。这里有什么问题?如果您需要我没有包含的任何其他文件,请告诉我。

我发现了错误是什么。我试图像这样读取 vue.config.js 中的一些文件内容:

const fs = require('fs-extra');
const path = require('path');

// read data
const data = fs.readJsonSync(path.resolve(__dirname, 'data.json'), {
  throws: false
});

// set process variables
process.env.VUE_APP_DATA = JSON.stringify(data);

module.exports = {
  devServer: {
    disableHostCheck: true,
  },
};

删除 fs.readJsonSync(...) 后,它开始工作了。