每当我将代码推送到master分支时,我都在使用GitHub操作自动发布npm package。问题出在我的.gitignore
中,已经添加了/dist/
文件夹。因此,当我将代码推送到云时,它会忽略dist
文件夹,而我只希望发布dist文件夹。我该怎么做?
我尝试使用npm install
和npm run build
在云中创建一个dist
文件夹,然后发布该程序包,但是它不起作用。它不会创建编译版本。
我看到的唯一解决方案是从/dist/
中删除.gitignore
并将其上传到云中,但是还有其他方法可以忽略dist并使用Github Actions将其自动发布到npm吗? >
这是我的.yml
文件
name: NPM Publish
on:
push:
branches:
- master
jobs:
release:
name: Pubish
runs-on: ubuntu-latest
steps:
- name: ⏬ checkout
uses: actions/checkout@v2.1.1
- name: ? Node
uses: actions/setup-node@v1.4.2
with:
node-version: 12
registry-url: https://registry.npmjs.org
- name: ? Publish
run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_AUTH_TOKEN}}
答案 0 :(得分:0)
您必须先构建它,然后才能在package.json文件中发布或添加预发布脚本。
即:
- name: Build
run: npm run build
- name: ? Publish
run: npm publish --access public
或 在package.json
...
"scripts": {
...
"prepublish": "npm run build",
}
之所以不进行构建,是因为它没有node_modules,因此您还需要安装它们并理想地使用缓存。
因此,在构建之前,您需要添加到yaml文件中。
- name: install
run: npm install
或者如果您使用的是锁定文件(对于软件包不理想)
- name: install
run: npm ci
请尝试也使用缓存而不是使npm注册表过载。
答案 1 :(得分:0)
我遇到了类似的问题。在我完成这里写的所有内容后,action 不会将 dist/ 文件夹添加到 npm。解决方案是创建 .npmignore 文件并添加到 tsconfig.json 和所有 ts 文件(*.ts)