我想在asp.net核心使用angular-cli,我需要知道如何更改 dist 文件夹的路径
答案 0 :(得分:162)
更新的方法是更新outDir
中的.angular-cli.json
属性。
仍然支持ng build
命令参数--output-path
(或简称为-op
),如果您想要多个值,可以将它们保存在{{1作为npm脚本。
注意:
package.json
属性不会像currently-accepted answer by @cwill747所说的那样被称为.angular-cli.json
。那只是output-path
参数。如上所述,它被称为
ng build
,它位于outDir
属性之下。
(2017年12月)
添加此答案后1年,有人添加了一个基本相同信息的新答案,原始海报将接受的答案更改为包含相同信息的1年后答案这一行。
答案 1 :(得分:46)
您可以更新.angular-cli.json中的输出文件夹:
"outDir": "./location/toYour/dist"
答案 2 :(得分:44)
您也可以使用CLI,例如:
ng build -prod --output-path=production
# or
ng serve --output-path=devroot
答案 3 :(得分:44)
对于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
S.A。 https://github.com/angular/angular-cli/wiki/build
设置输出路径,将告诉angular放置“已编译”文件的位置,但是在更改输出路径时,在运行应用程序时,angular仍将假定应用程序托管在Web服务器的文档根目录中。
要使其在子目录中运行,您必须设置基本href。
在angular.json中:
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"baseHref": "/my-folder/",
CLI:
ng build --base-href=/my-folder/
如果您不知道在构建时托管应用的位置,可以在生成的index.html中更改基本标记。
以下是我们如何在Docker容器中执行此操作的示例:
entrypoint.sh
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
答案 4 :(得分:17)
唯一有效的方法是更改outDir
和angular-cli.json
中的src/tsconfig.json
。
我希望我的dist文件夹在angular项目文件夹之外。如果我也没有更改src/tsconfig.json
中的设置,Angular CLI会在构建项目时抛出警告。
以下是最重要的一行......
// angular-cli.json
{
...
"apps": [
{
"outDir": "../dist",
...
}
],
...
}
而且......
// tsconfig.json
{
"compilerOptions": {
"outDir": "../../dist/out-tsc",
...
}
}
答案 5 :(得分:16)
注意:正确答案如下。这不再有效
在项目中创建一个名为.ember-cli
的文件,并在其中包含以下内容:
{
"output-path": "./location/to/your/dist/"
}
答案 6 :(得分:7)
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/
文件夹。
答案 7 :(得分:1)
另一种选择是将webroot路径设置为angular cli dist文件夹。 在您的Program.cs中配置WebHostBuilder时只需说出
.UseWebRoot(Directory.GetCurrentDirectory() + "\\Frontend\\dist")
或者你的目的地的路径是什么。
答案 8 :(得分:0)
对于我使用的github页面
ng build --prod --base-href "https://<username>.github.io/<RepoName>/" --output-path=docs
这就是将输出复制到docs文件夹中的内容:--output-path=docs
答案 9 :(得分:0)
对于具有angular.json
(而不是angular-cli.json
)的读者,正确的密钥是 outputPath 。我猜想角度配置在Angular 6中更改为angular.json
,因此,如果您使用的是版本6或更高版本,则很可能会有一个angular.json
文件。
要更改输出路径,必须更改 outputPath 和构建选项。
示例angular.json
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"projects": {
"angular-app": {
"projectType": "application",
[...]
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/angular-app",
"index": "src/index.html",
"main": "src/main.ts",
[...]
我找不到与此有关的任何正式文档(正如我所期望的那样,未包含在https://angular.io/guide/workspace-config中),也许有人可以为此链接一个官方资源。