首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环中的语义发布命令抛出与execa有关的错误

循环中的语义发布命令抛出与execa有关的错误
EN

Stack Overflow用户
提问于 2020-06-04 19:30:17
回答 1查看 525关注 0票数 1

我正试图向国家预防机制发布一个一揽子计划。当CircleCI试图运行semantic-release时,它会引发以下错误:

代码语言:javascript
复制
/home/circleci/src/node_modules/semantic-release/node_modules/execa/index.js:18
    const env = extendEnv ? {...process.env, ...envOption} : envOption;
                             ^^^

SyntaxError: Unexpected token ...

    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:511:25)
    at Object.Module._extensions..js (module.js:550:10)
    at Module.load (module.js:456:32)
    at tryModuleLoad (module.js:415:12)
    at Function.Module._load (module.js:407:3)
    at Module.require (module.js:466:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/home/circleci/src/node_modules/semantic-release/bin/semantic-release.js:9:13)
    at Module._compile (module.js:541:32)
npm ERR! code ELIFECYCLE

我的package.json devDependencies如下:

代码语言:javascript
复制
  "devDependencies": {
    "@semantic-release/changelog": "^5.0.1",
    "@semantic-release/commit-analyzer": "^8.0.1",
    "@semantic-release/git": "^9.0.0",
    "@semantic-release/github": "^7.0.7",
    "@semantic-release/npm": "^7.0.5",
    "@semantic-release/release-notes-generator": "^9.0.1",
    "eslint": "^6.8.0",
    "eslint-config-prettier": "^6.11.0",
    "eslint-plugin-prettier": "^3.1.3",
    "jest": "^25.5.1",
    "marked": "^0.4.0",
    "npm-audit-resolver": "^2.2.0",
    "prettier": "^2.0.5",
    "semantic-release": "^16.0.4",
    "semantic-release-cli": "^5.3.1"
  },

我在CircleCI中为github和npm设置了环境变量,并在我的CircleCI配置文件中使用了它们。在我的npm ci配置中运行semantic-release之前,我还有一个CircleCI步骤。

想知道是否有人遇到过这个问题并解决了这个问题?(如有需要,我可以提供更多的资料。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-05 19:59:24

我自己解决了这个问题。我怀疑这个问题是由于我在库中使用的semantic-release插件的某些版本不兼容造成的。我尝试了不同版本的semantic-release,但没有成功。

最后,我检查了我的CircleCI执行器的Nodejs版本(CircleCI executor,即机器执行器(image: ubuntu-1604:201903-01) )。我发现那个执行器中的节点版本太老了(v6.x.x)。我需要那个机器执行器来运行我的测试,因为我不得不通过运行在机器上的其他坞映像来模拟一些aws特性。但是,可以将执行程序更改为release步骤的Nodejs停靠程序执行器。所以,我做了这个,问题解决了。

例如,我在CircleCI配置的开头添加了如下内容:

代码语言:javascript
复制
version: 2.1

default_executor: &default_executor
  working_directory: ~/repo
  machine:
    image: ubuntu-1604:201903-01

release_executor: &release_executor
  working_directory: ~/repo
  docker:
    - image: circleci/node:10.18

然后,在release步骤中,我在运行npm run semantic-release之前执行了此操作

代码语言:javascript
复制
  release:
    <<: *release_executor

希望这个解决方案也能帮助到其他人:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62202714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档