Подтвердить что ты не робот

Как изменить путь dist-folder в angular -cli после 'ng build'

Я хотел бы использовать angular -cli с ядром asp.net, и мне нужно знать, как я могу изменить путь к папке dist

4b9b3361

Ответ 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