Добавить авторский заголовок в скомпилированное приложение Angular - PullRequest
1 голос
/ 24 сентября 2019

Файлы веб-сайта, скомпилированные при создании приложения Angular с ng build --prod, не содержат никакой информации об авторских правах, в частности те заголовки авторских прав, которые я добавляю в свой исходный код.

Например:

/*********
 * Copyright the current year Acme, Co.
 *********/

Как автоматически добавить информацию заголовка об авторских правах в файлы из выходных данных производственной сборки CLI ng?

Цель состоит, например, в том, чтобы изменить заголовок файла авторского права файла dist/apps/myapp/main.js так, чтобы он выглядел так же, как указано выше.

Я попытался объединить файлв конце сборки только заголовок авторских прав и файлы, выводимые в процессе сборки, но это означает, что мне нужно добавить шаги к процессу выпуска, ng build --prod; cat ..., но я не хочу этого делать, потому что он добавляетсложность сборки.

Ответы [ 2 ]

1 голос
/ 24 сентября 2019

Если вы хотите сделать это «Angular», я думаю, вам нужно либо извлечь из angular-cli (5.x и ниже), либо вы можете использовать пакет ngx-build-plus , которая позволяет вам делать некоторые дополнительные вещи из веб-пакета без извлечения и работает с 6.x & 7.x.

Я думаю, что самый простой плагин / функция веб-пакета для добавления комментария в начало выводафайл BannerPlugin, о котором вы можете прочитать подробнее здесь https://webpack.js.org/plugins/banner-plugin/

Примерно, чтобы сделать это (не тестировалось) с помощью ngx-build-extra, вы создадите новый файл, например webpack.extra.js, и добавите следующее:

const webpack = require('webpack'); module.exports = { plugins: [ new webpack.BannerPlugin('—– Some test comment for top of file —–') ] }

Затем вы передаете этот дополнительный файл в следующую сборку:

ng build –extra-webpack-config webpack.extra.js

И «Некоторые тестовые комментарии» должны появляться в верхней части каждогоchunk.

Лично я предпочитаю двухэтапный метод, который, как вы сказали, вы пытаетесь избежать, потому что инструменты Unix очень стабильны и требуют меньших изменений во времени - таким образом, я могу просто изменить сборку пакета.json так, чтобыбыть ng build && whatever, и он будет выполняться без моего беспокойства о запускевторая команда.

0 голосов
/ 24 сентября 2019

если вы хотите добавить переменные после того, как они скомпилированы, пожалуйста, следуйте этому руководству https://www.jvandemo.com/how-to-use-environment-variables-to-configure-your-angular-application-without-a-rebuild/

file: env.js

(function (window) {
  window.__env = window.__env || {};
  window.__env.apiUrl = 'http://localhost:8080';
  window.__env.copyright= 'Copyright the current year Acme, Co.';
  window.__env.enableDebug = true;
}(this));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...