You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Travis+semantic-release发布React组件npm包仅含3个文件求助

解决Travis+semantic-release发布nwb React组件到npm时包内容为空的问题

看起来你遇到的核心问题是Travis执行semantic-release时没有先构建组件产物,导致npm只能上传当前存在的README、LICENSE和package.json这三个文件——毕竟你手动发布时会先执行构建,所以产物目录存在,npm能正常上传。

下面是具体的排查和解决步骤:

1. 确认Travis构建流程缺少构建步骤

你的.travis.yml里,after_success直接调用了semantic-release,但没有先执行组件构建。nwb创建的React组件项目需要通过npm run build生成css、es、lib、umd这些产物目录,而Travis默认的构建流程(install→script(默认是npm test)→after_success)里没有包含这一步。

2. 修改Travis配置,在semantic-release前添加构建命令

更新你的.travis.yml中的after_success部分,把构建命令加在semantic-release前面:

after_success:
  - cat ./coverage/lcov.info | ./node_modules/codecov.io/bin/codecov.io.js
  - cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
  - npm run travis-deploy-once "npm run build && npm run semantic-release"

这样Travis会先执行组件构建,生成所有需要发布的产物目录,再启动semantic-release流程。

3. 确认package.json的脚本和files配置正确

  • 确保你的package.json里有正确的build脚本:
    "scripts": {
      "build": "nwb build-react-component",
      // 其他脚本...
    }
    
    这是nwb创建项目时默认生成的,如果你重建过项目应该已经存在。
  • 你已经配置了"files": [ "css", "es", "lib", "umd" ],这个没问题——npm会优先根据这个列表上传文件,只要这些目录存在,就会被包含在发布包中。

4. 验证Travis构建日志

触发新的Travis构建后,查看日志确认:

  • 有没有执行npm run build的步骤,以及是否成功生成了css、es等目录;
  • semantic-release执行npm publish时,这些目录是否被打包上传。

为什么手动发布正常?

因为你手动发布前肯定先运行了npm run build,生成了所有产物目录,npm publish时能找到这些目录并上传;而Travis的自动化流程里漏掉了构建这一步,导致产物目录不存在,自然只能上传已有的三个文件。

内容的提问来源于stack exchange,提问作者A. Iglesias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:08:02