Answers:
最新的方法是更新中的outDir
属性.angular-cli.json
。
该ng build
命令的参数--output-path
(或-op
简称)仍然还支持,如果你想多个值可以是有用的,你可以将它们保存在您package.json
的NPM脚本。
请注意:该
.angular-cli.json
属性不叫output-path
喜欢通过@ cwill747当前接受的答案说。那ng build
只是论点。
outDir
如上所述,它被称为,并且在apps
属性下。
。
(2017年12月)
添加此答案一年后,有人添加了一个具有基本相同信息的新答案,并且原始海报将接受的答案更改为该第一行中包含相同信息的1年末答案。
对于Angular 6+,情况有所变化。
Cli设置现在在工作区根目录中的angular.json(替换为.angular-cli.json)中完成。默认angular.json中的输出路径应如下所示(删除无关行):
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"outputPath": "dist/my-app-name",
显然,这将在WORKSPACE / dist / my-app-name中生成您的应用程序。如果您喜欢其他目录,请修改outputPath。
您可以使用命令行参数覆盖输出路径(例如,对于CI作业):
ng build -op dist/example
ng build --output-path=dist/example
萨https://github.com/angular/angular-cli/wiki/build
设置输出路径将告诉angular在哪里放置“已编译”文件,但是您更改输出路径后,在运行应用程序时,angular仍将假定该应用程序托管在网络服务器的文档根目录中。
要使其在子目录中工作,您必须设置基本href。
在angular.json中:
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"baseHref": "/my-folder/",
Cli:
ng build --base-href=/my-folder/
如果您不知道在构建时将在何处托管应用程序,则可以在生成的index.html中更改基本标记。
这是一个如何在Docker容器中执行此操作的示例:
入口点
if [ -n "${BASE_PATH}" ]
then
files=( $(find . -name "index.html") )
cp -n "${files[0]}" "${files[0]}.org"
cp "${files[0]}.org" "${files[0]}"
sed -i "s*<base href=\"/\">*<base href=\"${BASE_PATH}\">*g" "${files[0]}"
fi
您也可以使用CLI,例如:
ng build -prod --output-path=production
# or
ng serve --output-path=devroot
对我唯一起作用的是更改outDir
两个angular-cli.json
AND src/tsconfig.json
。
我希望将dist文件夹放在有角度的项目文件夹之外。如果我也没有更改设置,src/tsconfig.json
那么每当我构建项目时,Angular CLI都会发出警告。
这是最重要的几行...
// angular-cli.json
{
...
"apps": [
{
"outDir": "../dist",
...
}
],
...
}
还有...
// tsconfig.json
{
"compilerOptions": {
"outDir": "../../dist/out-tsc",
...
}
}
cli 7x
,以上操作在angular.json
字段中完成outputPath
(tsconfig
上面的调整保持不变)。Hth
Angular CLI现在使用环境文件来执行此操作。
首先,environments
在angular-cli.json
就像是 :
{
"apps": [{
"environments": {
"prod": "environments/environment.prod.ts"
}
}]
}
然后在环境文件中(environments/environment.prod.ts
在这种情况下),添加以下内容:
export const environment = {
production: true,
"output-path": "./whatever/dist/"
};
现在,当您运行时:
ng build --prod
它将输出到该./whatever/dist/
文件夹。
angular-cli: 1.0.0-beta.21
用于我使用的github页面
ng build --prod --base-href "https://<username>.github.io/<RepoName>/" --output-path=docs
这就是将输出复制到docs文件夹的内容: --output-path=docs