RE: Angular2 2.0.0, angular-cli v1.0.0-beta.11-webpack.8
¿Cómo le digo a angular-cli que incluya un archivo de "src / assets" en la raíz de "dist" cuando se compila?
Implementamos en un host de Windows y necesitamos incluir un archivo "web.config" para decirle a IIS que enrute todo al índice. Estábamos haciendo esto antes de RC4, pero con todas las actualizaciones se cayó por las grietas (no recuerdo cómo lo hicimos).
He estado revisando los documentos del repositorio de GitHub y no he encontrado nada útil con respecto a este tema. ¿Quizás estoy en el lugar equivocado?
En el ToC , hay una viñeta "Agregar archivos adicionales a la compilación", pero parece que esa sección no existe.
angular
angular-cli
Kizmar
fuente
fuente
"copy:webConfig": "node node_modules/copy/bin/cli.js web.config dist"
. También he añadido un script posterior construcción:"postbuild": "npm run copy:webConfig"
. Hubo otros problemas al intentar que la copia funcionara, pero esto funcionó.Respuestas:
La propiedad "assets" de angular-cli.json se puede configurar para incluir archivos personalizados en la compilación del paquete web angular-cli. Por lo tanto, configure el valor de la propiedad "activos" como una matriz. Por ejemplo:
La configuración anterior copiará config.jsn y .htaccess en la carpeta dist durante la compilación del paquete web angular-cli. la configuración anterior funcionó en angular-cli versión 1.0.0-beta.18
fuente
Respuesta correcta actual:
El equipo ha agregado soporte para copiar archivos específicos como están en la carpeta de salida (
dist
por defecto) en una versión posterior de Angular CLI (sería beta 17 o 19; ha estado en las versiones finales 1.x durante años).Simplemente agréguelo a la matriz
angular-cli.json
como:(Tenga en cuenta que la ruta es relativa a la
src
carpeta)Yo personalmente lo uso y funciona bien.
A partir de la versión beta 24, agregué una función a Angular CLI que garantiza que todos losassets
archivos y carpetas se proporcionen desde el servidor de desarrollo webpack cuando se ejecutanng test
no solong serve
.También admite el servicio de archivos de activos en el servidor de desarrollo de paquetes web que se usa para las pruebas unitarias (
ng test
).(en caso de que necesite algunos archivos JSON para las pruebas, o simplemente odie ver las advertencias 404 en la consola).
Ya están servidos desde
ng e2e
porque corre completong serve
.Y también tiene funciones más avanzadas, como filtrar los archivos que desea de una carpeta y hacer que el nombre de la carpeta de salida sea diferente al de la carpeta de origen:
También puede consultar la documentación oficial: Guía angular - Configuración del espacio de trabajo .
.
[SOLO PARA ARCHIVO] Respuesta original (6 de octubre de 2016):
Desafortunadamente, esto no es compatible actualmente (a partir de la versión beta-16). Le planteé la preocupación exacta al equipo (archivos web.config), pero no parece que vaya a suceder pronto (a menos que esté bifurcando la CLI, etc.).
Siga este número para una discusión completa y posibles detalles futuros.
PDPara el archivo JSON, puede colocarlo en formato
./src/assets/
. Esta carpeta se copia como está./dist/assets/
. Este es el comportamiento actual.Anteriormente, en los días de systemJS, había otra
./public/
carpeta en la que se copió./dist/
directamente, pero esto desapareció en las versiones de Webpack, que se analiza en el problema mencionado anteriormente.fuente
Una solución (aunque en mi opinión es un truco) es declarar una variable en su
main.ts
archivo que requiera el archivo adicional que desea incluir en la salida de la compilación del paquete web.EX:
Cuando el paquete web encuentra esta declaración de declaración de variable
main.ts
, emitirá elweb.config
archivo sin formato como parte de la salida de la compilación:Una solución ideal estaría en la configuración del paquete web, pero no puedo entender cómo el angular-cli lo está manejando hasta el
angular-cli.json
momento (beta.16).Entonces, si alguien tiene una mejor respuesta que extienda la configuración del paquete web para un proyecto generado por angular-cli, me encantaría escucharla.
fuente
Para lectores Angular 8 ,
.htaccess
necesita sersrc/.htaccess
. Vea abajo,Asegúrese de haber colocado el
.htaccess
archivo dentro delsrc
directorio de su proyecto.(Si necesita un
htaccess
archivo válido , puede encontrar uno aquí: https://stackoverflow.com/a/57126352/767625 )Eso es. Esto debería copiarse ahora cuando pulses
ng build --prod=true
.Espero que esto ayude a alguien.
Salud,
fuente
angular.json
no es elangular-cli.json
mencionado en respuestas anteriores.Hay una sección de "scripts" en el archivo angular-cli.json. Puede agregar todos los archivos javascript de terceros allí.
fuente
En mi caso, usé la versión 5 de Angular , así que intenté crear un archivo llamado Staticfile.txt al ejecutar el comando ng build --prod. asegúrese de dar la extensión del archivo, de lo contrario no creará el archivo.
fuente
Modifique angular.json.
Agregar entrada a la matriz de activos:
fuente