Как мне отобразить версию приложения в угловом приложении? версия должна быть взята из package.json
файла
{
"name": "angular-app",
"version": "0.0.1",
...
}
В angular 1.x у меня есть этот html:
<p><%=version %></p>
В angular это не отображается как номер версии, а вместо этого просто печатается как есть ( <%=version %>
вместо 0.0.1
).
version
angular
package.json
Збынек
источник
источник
typescript
, используюnpm start
для запуска компиляции иSystemJS
установки конфигурации. есть ли способ установить версию с помощью любого из них?Ответы:
Если вы хотите использовать / показать номер версии в своем приложении angular, сделайте следующее:
Предпосылки:
Angular структура файлов и папок, созданная с помощью Angular CLI
TypeScript 2.9 или новее! (Поддерживается начиная с Angular 6.1)
Шаги:
/tsconfig.json
(иногда также необходимо/src/tsconfig.app.json
) включите опцию resolveJsonModule (после этого потребуется перезапуск сервера webpack dev):/src/app/app.component.ts
используйте информацию о версии:Также можно выполнить шаг 2 в файле environment.ts, сделав информацию о версии доступной оттуда.
Thx @Ionaru и @MarcoRinck за помощь.
Это решение не будет включать содержимое package.json, только номер версии.
Протестировано с Angular8 / Node10 / TypeScript3.4.3.
Чтобы использовать это решение, обновите свои приложения, потому что в зависимости от содержимого вашего package.json исходное решение может иметь проблемы с безопасностью.
источник
Если вы используете webpack или angular-cli (который использует webpack), вы можете просто потребовать package.json в своем компоненте и отобразить эту опору.
И тогда у вас есть компонент
источник
Используя опцию tsconfig,
--resolveJsonModule
вы можете импортировать файлы json в Typescript.В файле environment.ts:
Теперь вы можете использовать
environment.VERSION
в своем приложении.источник
Попытка ответа DyslexicDcuk привела к
cannot find name require
Затем чтение раздела «Загрузка дополнительных модулей и другие расширенные сценарии загрузки» на https://www.typescriptlang.org/docs/handbook/modules.html помогло мне решить эту проблему. (Упоминается Гэри здесь https://stackoverflow.com/a/41767479/7047595 )
Используйте приведенное ниже объявление, чтобы потребовать package.json.
источник
Упрощенное решение для пользователей angular cli.
Добавить
declare module '*.json';
вsrc/typings.d.ts
А потом
src/environments/environment.ts
:Выполнено :)
источник
"allowSyntheticDefaultImports": true
в файл tsconfig.json в зависимости от версии Angular.Машинопись
HTML
источник
Рекомендуется объявить
version
как переменную среды, чтобы вы могли использовать ее везде в своем проекте. (особенно в случае загрузки файлов для кэширования в зависимости от версииe.g. yourCustomjsonFile.json?version=1.0.0
).Чтобы предотвратить проблемы с безопасностью (как упоминалось в @ZetaPR), мы можем использовать этот подход (в комментарии @sgwatgit)
Короче: мы создаем yourProjectPath \ PreBuild.js файл. Как это:
Вышеупомянутый фрагмент создаст новый файл,
/src/environments/version.ts
содержащий константу с именем,version
и установит ее по извлеченному значению изpackage.json
файла.Чтобы запустить содержимое при
PreBuild.json
сборке, мы добавляем этот файл в разделPackage.json
->,"scripts": { ... }"
как показано ниже. Итак, мы можем запустить проект, используя этот кодnpm start
:Теперь мы можем просто импортировать версию и использовать ее где захотим:
источник
Я не думаю, что "Angle Bracket Percent" имеет какое-либо отношение к angular1. Вероятно, в вашем предыдущем проекте используется интерфейс к другому API, о котором вы не подозреваете.
Самое простое решение: просто укажите номер версии вручную в файле HTML или сохраните его в глобальной переменной, если вы используете его в нескольких местах:
Ваше более сложное решение: запустите этап автоматизации сборки, который извлекает номер версии из вашего файла package.json, а затем перезаписывает ваш файл index.html (или файл js / ts), чтобы включить значение:
Можно просто импортировать или потребовать файл package.json, если вы работаете в среде, которая его поддерживает:
var version = require("../package.json").version;
Это также можно сделать в сценарии bash, который читает package.json и затем редактирует другой файл.
источник
<% %>
обычно указывает на язык .Net, такой как c #Я попытался решить эту проблему несколько иначе, учитывая простоту удобства и ремонтопригодность.
Я использовал сценарий bash, чтобы изменить версию во всем приложении. Следующий сценарий запросит у вас желаемый номер версии, и то же самое применяется во всем приложении.
Я сохранил этот сценарий в файле с именем version-manager.sh в корне проекта, а в моем файле package.json я также создал сценарий для его запуска, когда необходимо изменить версию.
Наконец, я могу просто изменить версию, выполнив
Эта команда изменит версию в шаблоне index.html, а также в файле package.json. Ниже приведены несколько скриншотов из моего существующего приложения.
источник
Вы можете читать package.json, как и любой другой файл, с http.get вот так:
источник