有必要将ts项目分成几个存储库/包,并从它们的各种组合中构建微服务。一个微服务需要一些软件包,而另一个则需要一些软件包。
在部署时,将编译代码并执行JS文件(当然)。
但是现在事实证明,如果插件包仅从ts文件中导出一些代码,则在执行编译的微服务时会发生错误,因为微服务代码会尝试从外部库中导入某些内容并执行找不到具有此类内容的js文件。
为了正确维护这样的系统,我不仅需要更改所连接软件包的ts代码,还需要构建它们,将编译后的代码推送到存储库中并发布npm软件包,其中还包括以下内容:编译的代码。
这很不方便,看起来很奇怪,而且很容易忘记。
是否有一种组织存储库/ npm软件包的方式,使得仅发布TS代码(并保持最新),并且在微服务上编译ts代码时,会从外部库和JavaScript中提取代码是在部署过程中一次生成的?
答案 0 :(得分:0)
显然,有很多方法。我已经为自己准备了下一个。错误的github动作可在推送到主服务器时自动生成并上传到npm。我将不得不修改这一切,除非版本已更改,但已经困了(这是可行的,因为如果版本未更改,则将出现pablish错误,只是管道长旋转会发生)。
以下是该操作的yaml文件的第一个版本:
name: npm-publish
on:
push:
branches: [ master ]
jobs:
npm-publish:
name: npm-publish
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@master
- name: Set up Node.js
uses: actions/setup-node@master
with:
node-version: 12
registry-url: https://registry.npmjs.org/
- name: Remove a dist folder from gitignore
run: sed -i '$ d' .gitignore
- name: Install dependencies
run: npm i
- name: Build
run: npm run build
- name: Publish
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}