Я хотел бы использовать angular -cli с ядром asp.net, и мне нужно знать, как я могу изменить путь к папке dist
Как изменить путь dist-folder в angular -cli после 'ng build'
Ответ 1
Вы можете обновить выходную папку в.angular-cli.json:
"outDir": "./location/toYour/dist"
Ответ 2
Более современным способом является обновление свойства outDir
в .angular-cli.json
.
Аргумент командной строки ng build
--output-path
(или -op
для краткости) также поддерживается, что может быть полезно, если вам нужно несколько значений, вы можете сохранить их в своих package.json
как сценарии npm.
Остерегайтесь: Свойство
.angular-cli.json
НЕ называетсяoutput-path
, как говорит принятый в настоящее время ответ от @cwill747. Только аргументng build
.Он назвал
outDir
, как упоминалось выше, и он находится под свойствомapps
.
.
P.S.
(декабрь 2017 года)
Через 1 год после добавления этого ответа, кто-то добавил новый ответ с практически такой же информацией, и Original Poster изменил принятый ответ на 1-летний ответ, содержащий ту же информацию в первом линии этого.
Ответ 3
Вы также можете использовать CLI, например:
ng build -prod --output-path=production
# or
ng serve --output-path=devroot
Ответ 4
Для Angular 6+ все немного изменилось.
Определите, где ng build генерирует файлы приложения
Настройка 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
Sa https://github.com/angular/angular-cli/wiki/build
Хостинг угловых приложений в подкаталоге
Установка пути вывода сообщит angular, куда помещать "скомпилированные" файлы, но как бы вы ни меняли путь вывода, при запуске приложения angular все равно будет предполагать, что приложение размещено в корне документа веб-сервера.
Чтобы он работал в подкаталоге, вам нужно установить базовый href.
В angular.json:
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"baseHref": "/my-folder/",
Кли:
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
Ответ 5
Единственное, что сработало для меня, заключалось в том, чтобы изменить 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",
...
}
}
Ответ 6
Остерегайтесь: Правильный ответ ниже. Это больше не работает
Создайте файл .ember-cli
в вашем проекте и включите в него следующее:
{
"output-path": "./location/to/your/dist/"
}
Ответ 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/
.
Ответ 8
При создании вы можете изменить базовый тег (<base href="/">)
в своем index.html с помощью
ng build --base-href /myPATH/
или
ng build --prod --base-href /myPATH/
Ответ 9
Другой вариант - установить путь webroot к папке angular cli dist. В программе Program.cs при настройке WebHostBuilder просто скажите
.UseWebRoot(Directory.GetCurrentDirectory() + "\\Frontend\\dist")
или любой другой путь к вашему дистрибутиву.
Ответ 10
для страниц github, которые я использую
ng build --prod --base-href "https://<username>.github.io/<RepoName>/" --output-path=docs
Вот что копирует вывод в папку docs: --output-path=docs