¿Cómo visualizo la versión de la aplicación en la aplicación angular? la versión debe tomarse del package.json
archivo
{
"name": "angular-app",
"version": "0.0.1",
...
}
En angular 1.x, tengo este html:
<p><%=version %></p>
En angular, esto no se representa como número de versión, sino que se imprime tal como está (en <%=version %>
lugar de 0.0.1
).
version
angular
package.json
Zbynek
fuente
fuente
typescript
, lo usonpm start
para ejecutar la compilación ySystemJS
establecer la configuración. ¿Hay alguna manera de configurar la versión con alguno de estos?Respuestas:
Si desea usar / mostrar el número de versión en su aplicación angular, haga lo siguiente:
Prerrequisitos:
Estructura angular de archivos y carpetas creada a través de CLI angular
TypeScript 2.9 o posterior! (Compatible desde Angular 6.1 hacia arriba)
Pasos:
/tsconfig.json
(a veces también necesario/src/tsconfig.app.json
), habilite la opción resolveJsonModule (se requiere reiniciar el servidor dev webpack después):/src/app/app.component.ts
use la información de versión:También es posible realizar el paso 2 en su archivo environment.ts, haciendo que la información de la versión sea accesible desde allí.
Gracias a @Ionaru y @MarcoRinck por ayudar.
Esta solución no incluirá el contenido de package.json, solo el número de versión.
Probado con Angular8 / Node10 / TypeScript3.4.3.
Actualice sus aplicaciones para usar esta solución porque, según el contenido de su paquete. Json, la solución original puede implicar problemas de seguridad.
fuente
Si está usando webpack o angular-cli (que usa webpack), solo puede requerir package.json en su componente y mostrar ese accesorio.
Y luego tienes tu componente
fuente
Usando la opción tsconfig
--resolveJsonModule
puede importar archivos json en Typecript.En el archivo environment.ts:
Ahora puede usar
environment.VERSION
en su aplicación.fuente
Probar la respuesta de DyslexicDcuk resultó en
cannot find name require
Luego, leer la sección 'Carga opcional de módulos y otros escenarios de carga avanzada' en https://www.typescriptlang.org/docs/handbook/modules.html me ayudó a resolver esto. (Mencionado por Gary aquí https://stackoverflow.com/a/41767479/7047595 )
Use la siguiente declaración para requerir package.json.
fuente
Solución simplista para usuarios de cli angular.
Añadir
declare module '*.json';
elsrc/typings.d.ts
Y luego en
src/environments/environment.ts
:Hecho :)
fuente
"allowSyntheticDefaultImports": true
a su tsconfig.json dependiendo de su versión angular.Es una buena idea declarar
version
como variable de entorno para que pueda usarlo en cualquier parte de su proyecto. (especialmente en el caso de cargar archivos para almacenar en caché según la versióne.g. yourCustomjsonFile.json?version=1.0.0
)Para evitar problemas de seguridad (como mencionó @ZetaPR) podemos usar este enfoque (en el comentario de @sgwatgit)
En resumen: creamos un yourProjectPath \ PreBuild.js expediente. Me gusta esto:
El fragmento anterior creará un nuevo archivo
/src/environments/version.ts
que contiene una constante llamadaversion
y lo establecerá por valor extraído delpackage.json
archivo.Para ejecutar el contenido de la
PreBuild.json
compilación, agregamos este archivo a la secciónPackage.json
->"scripts": { ... }"
como se muestra a continuación. Entonces podemos ejecutar el proyecto usando este códigonpm start
:Ahora podemos simplemente importar la versión y usarla donde queramos:
fuente
Mecanografiado
HTML
fuente
No creo que el "porcentaje de paréntesis angular" tenga algo que ver con angular1. Es probable que se esté utilizando una interfaz con otra API que no sabe que se está utilizando en su proyecto anterior.
Su solución más fácil: simplemente enumere el número de versión manualmente en su archivo HTML o guárdelo en una variable global si lo está utilizando en varios lugares:
Su solución más difícil: ejecute un paso de automatización de compilación que extraiga el número de versión de su archivo package.json y luego vuelva a escribir su archivo index.html (o archivo js / ts) para incluir el valor:
Simplemente podría importar o requerir el archivo package.json, si está trabajando en un entorno que lo admite:
var version = require("../package.json").version;
Esto también podría hacerse en un script bash que lea el paquete.json y luego edite otro archivo.
fuente
<% %>
generalmente indica un lenguaje .Net como c #He tratado de resolver esto de una manera un poco diferente, también considerando la facilidad de conveniencia y facilidad de mantenimiento.
He usado el script bash para cambiar la versión en toda la aplicación. El siguiente script le pedirá el número de versión deseado, y lo mismo se aplica en toda la aplicación.
He guardado este script en un archivo llamado version-manager.sh en la raíz del proyecto, y en mi archivo package.json, también creé un script para ejecutarlo cuando es necesario modificar la versión.
Finalmente, puedo cambiar la versión ejecutando
Este comando cambiará la versión en la plantilla index.html y también en el archivo package.json. Las siguientes fueron las pocas capturas de pantalla tomadas de mi aplicación existente.
fuente
Puede leer package.json como cualquier otro archivo, con http.get así:
fuente