打包发布到 npm 几乎是空的:只需发布 README、LICENSE 和 package.json

Packaged published to npm is almost empty: Just publish README, LICENSE and package.json

我有一个用 nwb 创建的 React 组件项目。我正在使用 Travis 和语义发布来发布。

但是现在,当我发布新版本时,Travis 发布的包几乎是空的,只有三个文件:README、LICENSE 和package.json。

我的.travis.yml配置...

sudo: false
language: node_js
cache:
  directories:
    - ~/.npm
notifications:
  email: false
node_js:
  - '8'
before_install:
  - npm install npm codecov.io coveralls
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 semantic-release"
branches:
  only:
    - master

travis 构建看起来不错,我看不到任何错误。它发现新版本并发布它,但只发布这三个文件。

public Github 存储库是这个...

https://github.com/rigobauer/react-abc2svg

...您可以在此处查看 travis 构建...

https://travis-ci.org/rigobauer/react-abc2svg/jobs/332199646

如果我在 package.json 和 运行 npm publish 中手动设置版本号,则包会正确发布。

我试过清理 npm 缓存、重新安装所有依赖项、使用 semantic-release-cli setup 重新创建 .travis.yml 等。但我总是得到相同的结果。当我尝试在另一个项目中升级或安装包时,node_modules 中的目录只有这三个文件。

知道问题出在哪里吗?

已更新:我用 nwb 从头开始​​重新创建项目,重新安装依赖项等。我遇到了同样的问题。

更新 2:我在 package.json 中配置了这样的目录列表...

"files": [
    "css",
    "es",
    "lib",
    "umd"
]

...但我也尝试创建一个 .npmignore 文件。问题依旧。

我在 Travis 文档中找到了 this,也许您应该将 skip_cleanup: true 选项添加到您的 travis.yml(只是猜测)

知道了!感谢语义发布人员,我意识到我必须手动向 Travis 指示 运行 我的构建脚本(使用 nwb 生成)。所以只需将其更改为 .travis.yml 即可使其正常工作...

.......
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 build
  - npm run travis-deploy-once "npm run semantic-release"
........

我认为 Travis 会自动执行此操作,因为我有另一个组件项目使用完全相同的过程制作,并且该程序包没问题(这就是让我发疯的原因)。阅读他们的回答后,我重新检查了所有内容,并意识到我第一次手动发布了该包,然后我合并了语义发布。问题是下一次提交与功能或修复无关,因此语义发布不会生成新版本,原始包仍然存在。

如果有人遇到相同类型的问题,这里是 Git 问题的答案:https://github.com/semantic-release/semantic-release/issues/615