node.js - 将 ng build in outdir 生成的工件复制到另一个文件夹
问题描述
我有一个角度项目。当我们运行 ng build 命令时,会在 dist 文件夹中创建构建工件,就像我们"outDir": "dist",
在 angular-cli.json 中设置的那样。在此之后,我必须手动将这些文件从 dist 复制到 java 的 Webcontent 文件夹以生成 WAR 文件。
有没有办法自动化处理工件的过程。如果我将 WebContent 的路径设置为 outDir 值"outDir": "../server/WebContent",
,则构建命令会在生成构建工件之前清理现有的 java 文件。
任何建议都会有所帮助..
解决方案
考虑以下解决方案:
下面介绍如何在*Nix平台上实现这一点,并提供了一个跨平台的解决方案。
*尼克斯(Linux,macOS,...)
在 *nix 平台上,npmsh
用作运行 npm 脚本的默认 shell。因此,将以下内容添加到scripts
您的项目package.json部分:
包,json
"scripts": {
"build": "ng build",
"postbuild": "cp -r dist/ ../server/WebContent"
}
这个postbuild
npm 脚本利用 shells cp命令递归地将工件从dist
目录复制到../server/WebContent
目录。脚本成功完成后,postbuild
脚本将自动运行。build
跑步:
通过命令行运行以下命令而不是ng build
:
npm run build
跨平台(Linux、macOS、Windows、...)
对于跨平台解决方案,首先安装shx - 它是ShellJS Unix 命令的包装器:
cd
到您的项目目录。然后运行以下命令:
npm install -D shx
定义scripts
项目package.json的部分,如下所示:
包.json
"scripts": {
"build": "ng build",
"postbuild": "shx cp -r \"dist/*\" \"../server/WebContent\""
}
跑步:
通过命令行运行以下命令而不是ng build
:
npm run build
推荐阅读
- flutter - 当应用程序处于后台时,我们如何忽略颤振 fcm 消息传递中的通知
- python-3.x - 如何将数据帧重新采样到秒 bin
- c# - 在扫描的二维码/条形码实物周围绘制绿色轮廓
- javascript - 在 JS 上复制 python 请求的错误请求错误
- php - 错误:未找到“League\Flysystem\AwsS3v3\AwsS3Adapter”类
- c - 使用长变量存储字符并打印
- linux - bash while 循环中的“完成”功能/含义是什么?
- azure - Microsoft Azure 基础 Pdf 版
- apache-spark - 将 Dataset 中的嵌套 json 字符串转换为 Spark Scala 中的 Dataset/Dataframe
- ios - 将 IAP 存储在 UserDefaults 中,这样用户就不需要在每次按下“可购买”按钮时恢复购买