gpt4 book ai didi

javascript - 如何在 Gitlab CI 中缩小 Javascript 代码?

转载 作者:行者123 更新时间:2023-11-30 20:01:33 25 4
gpt4 key购买 nike

我为网络编写 Javascript 代码,我通常在上传之前缩小。我使用专用工具(如 UglifyJS)在本地执行此操作,但我想使用 Gitlab 持续集成(因为我在此项目中使用 Gitlab)稍微自动化该过程。

我的目标似乎很简单:使用 Gitlab CI 压缩某些事件的代码并输出这些文件,以方便我获取它们。

但是,我还没有找到任何东西(教程或其他)来执行此操作。

我对 Gitlab CI 的经验很少,所以我真的不知道从哪里开始,但我尝试将其分解为更小的问题:- 我找不到可以使用 Gitlab CI 运行的简单脚本,它主要是更大的实用程序(YUI Compressor、Google Closure Compiler)。- 如果我找到压缩文件的方法,我可以将它们从 CI 推送到我的存储库吗?如果是,我想知道这是否真的是好的做法,因为这会对无用的缩小文件进行版本控制。

在不太复杂的事情上做得最好似乎是 Google Closure Compiler,它可以与其 API 一起使用。如果我理解正确,我可以使用 Gitlab 的 Webhooks 进行 API 调用(不确定我将如何以这种方式传递数据,但我会看看我能做什么)。但是,我该如何阅读回复(Gitlab Webhooks 似乎不适合)?也许直接在 Gitlab CI 中进行这些 API 调用会更好,但我不确定如何说实话,主要是我不确定如何取回压缩数据以及我可以用它做什么(将它存储在哪里)。

最佳答案

我的回答有点晚了,但可能对其他人有帮助。 IMO,最简单的方法是使用专用工具,例如 yuicompressor (也适用于 CSS)。下面是一个 gitlab-ci 的例子:

before_script:
- apt-get update && apt-get install -y -qq sshpass
- apt-get install -y -qq default-jdk
- mkdir yuicompressor
- wget -P yuicompressor/ https://github.com/yui/yuicompressor/releases/download/v2.4.8/yuicompressor-2.4.8.jar

deploy_production:
stage: deploy
environment: Production
only:
- master
script:
- java -jar yuicompressor/yuicompressor-2.4.8.jar -o '.js$:.js' src/static/js/*.js
- export SSHPASS=$SSH_PASS
- sshpass -e scp -o stricthostkeychecking=no -r src/* user@some_domain.net:~/www/

解释

在将整个项目 src 发送到生产之前,此管道缩小并替换 src/static/js/ 中包含的所有 js 文件使用 sshpass 的服务器。

脚本之前

由于gitlab runners默认没有java,我们安装apt-get install -y -qq default-jdk。然后我们只需要wget yuicompressor 的jar

希望对你有帮助

关于javascript - 如何在 Gitlab CI 中缩小 Javascript 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53317229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com