angular - как динамически изменять содержимое файла index.html при запуске команды ng-build - PullRequest
0 голосов
/ 01 мая 2018

Я хочу изменить URL тега сценария, когда я запускаю команду ng build с параметром --prod и без --prod вариант. Ниже приведен пример.

ng build --prod

<!DOCTYPE html>
<html>
<head>
    <title>Home Page</title>
</head>
<body>
    <script src="https://my-site.net/prod.js"></script>
</body>
</html>

нг билд

<!DOCTYPE html>
<html>
<head>
    <title>Home Page</title>
</head>
<body>
    <script src="https://my-site.net/dev.js"></script>
</body>
</html>

Как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 30 июля 2019

В angular.json вы можете настроить индексный файл, который будет использоваться (я использую Angular 8):

"projects": {
    "projectName": {
        "architect": {
            "build": {
                "options": {
                    "index": "src/index.html", // this is the default location (also for ng serve)
                    "configurations": {
                        "production": {
                            "index": "index-prod.html" // this is the prod version (you can also link it to /prod/index.html or whatever: it will be placed in the dist root folder with the provided name)
                        },
                        "development": {
                            "index": "index-whatever.html" // this is the version for ng build --configuration=development`
                        }
                    }
                }
            }
            "serve": {
                "index": "dev/index.html" // file to be used in ng serve
            }
        }
    }
}

AFAIK, ни один из этих "index" s не является обязательным, кроме первого Sidenote: это то, что я только что попробовал с некоторыми попытками, сборками и ng serve s. Я не нашел это ни в одной документации. Проверьте это и дайте мне знать Проверьте это и дайте мне знать.

0 голосов
/ 01 мая 2018

Угловой Cli не предоставляет такой функции. Но вы можете использовать переменные окружения для динамического внедрения правильных сценариев во время выполнения.

Например:

main.ts

import { env } from './environments/environment';

if (env.production) {
   const script = document.createElement('script');
   script.src = https://my-site.net/prod.js
   document.head.appendChild(script);
} else {
   const script = document.createElement('script');
   script.src = https://my-site.net/dev.js
   document.head.appendChild(script);
}

Подробнее здесь: https://github.com/angular/angular-cli/issues/4451#issuecomment-285329985

...