如何在不覆盖输出文件夹中现有文件的情况下更改 dist 文件夹路径
how to change the dist-folder path without overwriting existing files in output folder
我使用 JAVA 和 App Engine 作为后端,angular 作为前端我还想使用 ng build
直接构建我的文件并将它们输出到我的 java 项目所以我尝试在我的 angular.json
文件中替换 outputPath
{
...
"options": [
{
"outputPath": "../../myproject/java/src/main/webapp/",
...
}
],
...
}
所有文件都正确放置在 webapp
文件夹中,但唯一的问题是它会覆盖整个文件夹,导致丢失其他项目 files/directories,所以我必须手动将文件放入该目录是我想避免的。
我还尝试更改 base-href
并尝试从 /dist
folder.But 加载我的文件,更改 base-href
会导致不正确的 url 路由。
避免覆盖文件的任何解决方案。
如果您在构建后手动添加文件,那么您可以尝试编写一个 postbuild
操作,将所有这些文件复制到构建文件夹中。
文件package.json
:
"scripts": {
"start": "ng serve",
"build": "ng build --prod",
"postbuild": "cp somefile ../../myproject/java/src/main/webapp/somefile",
...
},
如果您在 windows OS 上并且想要执行多项操作,您可以使用 powershell
脚本,该脚本可以作为 postbuild
步骤调用。
"scripts": {
...
"postbuild": "powershell ./update-build-folder.ps1",
...
},
每次你 运行 npm build
/yarn build
,构建目录都会被清理,之后 angular CLI 会输出 JS 文件,然后所有这些自定义文件都会被放在build目录下。
您使用的 angular-cli 是什么版本?我能够成功构建到 angular 项目之外的目录,该目录包含其他文件,而不会删除这些其他文件。 (这是 angular-cli v7.3.9)
最后,您确定删除构建路径中文件的不是其他脚本吗? (即后端构建脚本)
...
"options": {
"outputPath": "../custom-output/web/build-here",
...
},
...
截图:
我使用 JAVA 和 App Engine 作为后端,angular 作为前端我还想使用 ng build
直接构建我的文件并将它们输出到我的 java 项目所以我尝试在我的 angular.json
文件中替换 outputPath
{
...
"options": [
{
"outputPath": "../../myproject/java/src/main/webapp/",
...
}
],
...
}
所有文件都正确放置在 webapp
文件夹中,但唯一的问题是它会覆盖整个文件夹,导致丢失其他项目 files/directories,所以我必须手动将文件放入该目录是我想避免的。
我还尝试更改 base-href
并尝试从 /dist
folder.But 加载我的文件,更改 base-href
会导致不正确的 url 路由。
避免覆盖文件的任何解决方案。
如果您在构建后手动添加文件,那么您可以尝试编写一个 postbuild
操作,将所有这些文件复制到构建文件夹中。
文件package.json
:
"scripts": {
"start": "ng serve",
"build": "ng build --prod",
"postbuild": "cp somefile ../../myproject/java/src/main/webapp/somefile",
...
},
如果您在 windows OS 上并且想要执行多项操作,您可以使用 powershell
脚本,该脚本可以作为 postbuild
步骤调用。
"scripts": {
...
"postbuild": "powershell ./update-build-folder.ps1",
...
},
每次你 运行 npm build
/yarn build
,构建目录都会被清理,之后 angular CLI 会输出 JS 文件,然后所有这些自定义文件都会被放在build目录下。
您使用的 angular-cli 是什么版本?我能够成功构建到 angular 项目之外的目录,该目录包含其他文件,而不会删除这些其他文件。 (这是 angular-cli v7.3.9)
最后,您确定删除构建路径中文件的不是其他脚本吗? (即后端构建脚本)
...
"options": {
"outputPath": "../custom-output/web/build-here",
...
},
...
截图: