打包发布到 npm 几乎是空的:只需发布 README、LICENSE 和 package.json
Posted
技术标签:
【中文标题】打包发布到 npm 几乎是空的:只需发布 README、LICENSE 和 package.json【英文标题】:Packaged published to npm is almost empty: Just publish README, LICENSE and package.json 【发布时间】:2018-07-02 03:36:37 【问题描述】:我有一个用 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 构建看起来不错,我看不到任何错误。它发现新版本并发布它,但只发布这三个文件。
公共 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
文件。问题依然存在。
【问题讨论】:
【参考方案1】:知道了!感谢语义发布人员,我意识到我必须手动指示 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 会自动执行此操作,因为我有另一个使用完全相同的流程制作的组件项目,并且该包没问题(这就是让我发疯的原因)。在阅读了他们的回答后,我重新检查了所有内容,并意识到我是手动发布了该包的第一次发布,然后我合并了语义发布。问题是下一次提交与功能或修复无关,因此语义发布不会生成新版本,并且原始包仍然存在。
【讨论】:
【参考方案2】:如果有人遇到相同类型的问题,这里是 Git 问题的答案:https://github.com/semantic-release/semantic-release/issues/615
【讨论】:
【参考方案3】:我在 Travis 文档中找到了 this,也许您应该在 travis.yml 中添加 skip_cleanup: true
选项(只是猜测)
【讨论】:
我刚刚试了一下,没有解决问题。还是谢谢!以上是关于打包发布到 npm 几乎是空的:只需发布 README、LICENSE 和 package.json的主要内容,如果未能解决你的问题,请参考以下文章