servidor - cómo cambiar la ruta de la carpeta dist en angular-cli después de ''ng build''
instalar angular 5 (9)
Me gustaría usar angular-cli con asp.net core y necesito saber cómo puedo cambiar la ruta de la carpeta dist
Cuidado: la respuesta correcta está abajo. Esto ya no funciona
Cree un archivo llamado
.ember-cli
en su proyecto e incluya en él estos contenidos:
{
"output-path": "./location/to/your/dist/"
}
Angular CLI ahora usa archivos de entorno para hacer esto.
Primero, agregue una sección de
environments
al
angular-cli.json
Algo como :
{
"apps": [{
"environments": {
"prod": "environments/environment.prod.ts"
}
}]
}
Y luego, dentro del archivo de entorno (
environments/environment.prod.ts
en este caso), agregue algo como:
export const environment = {
production: true,
"output-path": "./whatever/dist/"
};
ahora cuando corres:
ng build --prod
saldrá a la carpeta
./whatever/dist/
.
La forma más actual de esto es actualizar la propiedad
.angular-cli.json
en
.angular-cli.json
.
El argumento del comando
ng build
--output-path
(u
-op
para abreviar) también es compatible, lo que puede ser útil si desea múltiples valores, puede guardarlos en su
package.json
como scripts npm.
Cuidado: la propiedad
.angular-cli.json
NO se llamaoutput-path
como dice la respuesta actualmente aceptada por @ cwill747 . Ese es solo el argumentong build
.Se llama
outDir
como se mencionó anteriormente, y está debajo de la propiedad deapps
.
.
PD
(Diciembre de 2017)
1 año después de agregar esta respuesta , alguien agregó una nueva respuesta con esencialmente la misma información, y el póster original cambió la respuesta aceptada a la respuesta tardía de 1 año que contiene la misma información en la primera línea de esta.
Lo único que funcionó para mí fue cambiar
outDir
en
angular-cli.json
Y
src/tsconfig.json
.
Quería mi dist-folder fuera de la carpeta angular del proyecto.
Si no cambiara la configuración en
src/tsconfig.json
también, la CLI angular arrojaría advertencias cada vez que construya el proyecto.
Aquí están las líneas más importantes ...
// angular-cli.json
{
...
"apps": [
{
"outDir": "../dist",
...
}
],
...
}
Y ...
// tsconfig.json
{
"compilerOptions": {
"outDir": "../../dist/out-tsc",
...
}
}
Otra opción sería establecer la ruta webroot a la carpeta angular cli dist. En su Program.cs al configurar WebHostBuilder solo diga
.UseWebRoot(Directory.GetCurrentDirectory() + "//Frontend//dist")
o cualquiera que sea el camino a su directorio de destino.
Para Angular 6+ las cosas han cambiado un poco.
Defina dónde ng build genera archivos de aplicaciones
La configuración de Cli ahora se realiza en angular.json (reemplazado .angular-cli.json) en el directorio raíz del espacio de trabajo. La ruta de salida en angular.json predeterminada debería tener este aspecto (líneas irrelevantes eliminadas):
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"outputPath": "dist/my-app-name",
Obviamente, esto generará su aplicación en WORKSPACE / dist / my-app-name. Modifique outputPath si prefiere otro directorio.
Puede sobrescribir la ruta de salida utilizando argumentos de línea de comandos (por ejemplo, para trabajos de CI):
ng build -op dist/example
ng build --output-path=dist/example
Sa https://github.com/angular/angular-cli/wiki/build
Aplicación angular de alojamiento en subdirectorio
Al establecer la ruta de salida, le dirá a angular dónde colocar los archivos "compilados" pero, sin embargo, si cambia la ruta de salida, cuando ejecute la aplicación, angular seguirá asumiendo que la aplicación está alojada en la raíz del documento del servidor web.
Para que funcione en un subdirectorio, deberá configurar la base href.
En angular.json:
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"baseHref": "/my-folder/",
Cli:
ng build --base-href=/my-folder/
Si no sabe dónde se alojará la aplicación en el momento de la compilación, puede cambiar la etiqueta base en index.html generado.
Aquí hay un ejemplo de cómo lo hacemos en nuestro contenedor acoplable:
entrypoint.sh
if [ -n "${BASE_PATH}" ]
then
files=( $(find . -name "index.html") )
cp -n "${files[0]}" "${files[0]}.org"
cp "${files[0]}.org" "${files[0]}"
sed -i "s*<base href=/"//">*<base href=/"${BASE_PATH}/">*g" "${files[0]}"
fi
Puede actualizar la carpeta de salida en .angular-cli.json:
"outDir": "./location/toYour/dist"
También puede usar la CLI, como:
ng build -prod --output-path=production
# or
ng serve --output-path=devroot
para las páginas de github que uso
ng build --prod --base-href "https://<username>.github.io/<RepoName>/" --output-path=docs
Esto es lo que copia la salida en la carpeta docs:
--output-path=docs