Npm Gitlab CI:在存储库中创建dist文件夹?

Npm Gitlab CI:在存储库中创建dist文件夹?,npm,continuous-integration,gitlab,Npm,Continuous Integration,Gitlab,我最近刚刚开始使用gitlab CI自动化一些构建/部署步骤。它可以完美地构建docker图像等,但我想知道是否可以在构建步骤中在存储库中创建一个文件夹?例如,我现在正在制作一个npm实用程序包,但我只是通过一个私有的gitlab repo(使用部署令牌)在我的其他项目中导入它,但是util包的代码是用es6编写的,需要传输到commonJS以在其他包中使用。我可以手动运行npm运行构建,它将输出一个带有传输代码的dist文件夹 我正在尝试(并研究)是否有可能使用.gitlab ci自动化这个构

我最近刚刚开始使用gitlab CI自动化一些构建/部署步骤。它可以完美地构建docker图像等,但我想知道是否可以在构建步骤中在存储库中创建一个文件夹?例如,我现在正在制作一个npm实用程序包,但我只是通过一个私有的gitlab repo(使用部署令牌)在我的其他项目中导入它,但是util包的代码是用es6编写的,需要传输到commonJS以在其他包中使用。我可以手动运行npm运行构建,它将输出一个带有传输代码的dist文件夹

我正在尝试(并研究)是否有可能使用.gitlab ci自动化这个构建过程,但到目前为止我找不到任何东西

有人知道我如何做到这一点和/或这是否可能吗


提前谢谢

不确定我是否正确回答了您的问题,如果没有,请添加更多详细信息

当您的CI构建创建新文件夹或文件时,它们将被写入任务运行程序的文件系统(我认为这并不奇怪)

如果要从Gitlab的web UI访问这些文件,可以在构建作业中将它们定义为工件

您的构建作业看起来是这样的(由内存编写的伪代码,未在Gitlab上测试):


更新如果您想将构建工件上载到NPM注册表,只需构建并推送即可

build:
  script:
  - npm run build
  - npm publish <PARAMETERS>
构建:
脚本:
-npm运行构建
-npm发布

不确定我是否正确回答了您的问题,如果没有,请添加更多详细信息

当您的CI构建创建新文件夹或文件时,它们将被写入任务运行程序的文件系统(我认为这并不奇怪)

如果要从Gitlab的web UI访问这些文件,可以在构建作业中将它们定义为工件

您的构建作业看起来是这样的(由内存编写的伪代码,未在Gitlab上测试):


更新如果您想将构建工件上载到NPM注册表,只需构建并推送即可

build:
  script:
  - npm run build
  - npm publish <PARAMETERS>
构建:
脚本:
-npm运行构建
-npm发布

我指的是存储库本身,因此每次推送时,我都希望在存储库中创建一个dist文件夹,因为我在其他服务中将整个repo作为npm包使用,但我喜欢使用最新的es标准,因此我需要使用Babel进行传输。但是我知道这是不可能的,但是我需要一个预提交钩子而不是CI命令,但是这个解决方案需要+1,因为这也是一种实现类似功能的方法。Hi@JC97,thx for the credit;)通过在存储库中创建文件夹,您的意思是
git commit&git push
该文件夹吗?好的,这将a)触发一个新的构建管道,b)在repo中存储构建工件。我会避免两者。这就是构建管道和工件的设计目的。管道的最后一步是将
npm发布到注册表。你明白我的意思吗?我明白你的意思,我不知道怎么做,现在我知道:)我现在就试用预提交挂钩,但如果我将来有需要,我会使用一个私有的npm注册表。谢谢我的意思是在存储库中,所以每次推送时,我都希望在存储库中创建一个dist文件夹,因为我在其他服务中使用整个repo作为npm包,但我喜欢使用最新的es标准,所以我需要使用Babel进行传输。但是我知道这是不可能的,但是我需要一个预提交钩子而不是CI命令,但是这个解决方案需要+1,因为这也是一种实现类似功能的方法。Hi@JC97,thx for the credit;)通过在存储库中创建文件夹,您的意思是
git commit&git push
该文件夹吗?好的,这将a)触发一个新的构建管道,b)在repo中存储构建工件。我会避免两者。这就是构建管道和工件的设计目的。管道的最后一步是将
npm发布到注册表。你明白我的意思吗?我明白你的意思,我不知道怎么做,现在我知道:)我现在就试用预提交挂钩,但如果我将来有需要,我会使用一个私有的npm注册表。谢谢