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


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

9 65

9 ответов:

вы можете обновить выходную папку .угловой-кли.json:

"outDir": "./location/toYour/dist"

более текущий способ это обновить outDir в собственность .angular-cli.json.

The ng buildаргумент команды --output-path (или -op для краткости) также поддерживается, что может быть полезно, если вы хотите несколько значений, вы можете сохранить их в своем package.json как сценарии npm.

внимание: The .angular-cli.json свойство не называется output-path как в настоящее время-принятый ответ @cwill747 говорит. Вот это

вы также можете использовать CLI, например:

ng build -prod --output-path=production

# or

ng serve --output-path=devroot

внимание: правильный ответ ниже. Это больше не работает

создайте файл с именем .ember-cli в вашем проекте, и включить в него следующее содержание:

{
   "output-path": "./location/to/your/dist/"
}

единственное, что сработало для меня, это изменить outDir В и angular-cli.json и src/tsconfig.json.

Я хотел, чтобы моя dist-папка находилась за пределами угловой папки проекта. Если бы я не изменил настройки в src/tsconfig.json кроме того, угловой CLI будет выдавать предупреждения всякий раз, когда я строю проект.

вот самые важные строки ...

// angular-cli.json
{
  ...
  "apps": [
    {
      "outDir": "../dist",
      ...
    }
  ],
  ...
}

и ...

// tsconfig.json
{
  "compilerOptions": {
    "outDir": "../../dist/out-tsc",
    ...
  }
}

для угловых 6 вещей немного изменились.

определите, где ng build генерирует файлы приложений

настройки командной строки это делается сейчас в угловое.json (заменить .угловой-кли.json) в корневом каталоге рабочей области. Выходной путь по умолчанию угловой.json должен выглядеть так (ненужные строки удалены):

{
  "projects": {
    "my-app-name": {
    "architect": {
      "options": {
         "outputPath": "dist/my-app-name",

очевидно, что это создаст ваше приложение в WORKSPACE/dist / my-app-name. Измените путь вывода, Если вы предпочитаете другой справочник.

вы можете перезаписать выходной путь с помощью аргументов командной строки (например, для заданий CI):

ng build -op dist/example
ng build --output-path=dist/example

S. a.https://github.com/angular/angular-cli/wiki/build

хостинг угловой приложение в подкаталоге

установка выходного пути, подскажет angular, где разместить "скомпилированные" файлы, но как бы вы ни изменили выходной путь, при запуске приложения angular все равно будет предполагать, что приложение размещено в документе веб-сервера корень.

чтобы заставить его работать в подкаталог, вы будете иметь, чтобы установить основание избыточного веса.

в угловой.json:

{
  "projects": {
    "my-app-name": {
    "architect": {
      "options": {
         "baseHref": "/my-folder/",

Cli:

ng build --base-href=/my-folder/

если вы не знаете, где будет размещено приложение во время сборки, вы можете изменить базовый тег в сгенерированном индексе.формат 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

при построении вы можете изменить базовый тег (<base href="/">) в свой индекс.HTML с помощью

ng build --base-href /myPATH/

или

ng build --prod --base-href /myPATH/

угловой CLI теперь использует файлы среды для этого.

во-первых, добавьте до 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

он будет выводить на .

другой вариант-установить путь webroot в папку angular cli dist. в вашей программе.cs при настройке WebHostBuilder просто скажите

.UseWebRoot(Directory.GetCurrentDirectory() + "\Frontend\dist")

или каков бы ни был путь к вашему dist dir.