ng build exporta archivos a la carpeta dist de la siguiente manera
index.html main.bundle.js styles.bundle.js ...Quiero que los scripts estén en una subcarpeta
*index.html scripts/main.bundle.js scripts/styles.bundle.js ...*¿Cómo puedo hacerlo?
ng eject -ec (agregue '-prod' para la compilación de producción, o -aot false para la compilación JIT). Este comando expondrá el archivo webpack.config.js en su directorio raíz. El indicador -ec extraerá archivos CSS (en lugar de servirlos desde un archivo JS). (para 'deseleccionar' su aplicación nuevamente, vea mi otra respuesta ) Ejecute npm install para instalar cargadores de paquetes web
En el archivo webpack.config.js , edite la entrada de salida y agregue el nombre de directorio deseado para los archivos JS:
"output": { "path": path.join(process.cwd(), "dist"), "filename": "scripts/[name].[chunkhash:20].bundle.js", "chunkFilename": "scripts/[id].[chunkhash:20].chunk.js" }
debido a que agregamos el indicador -ec al comando ng eject eject, ahora también tenemos archivos CSS. También podemos moverlo a dist/styles modificando el complemento ExtractTextPlugin en la entrada de complementos en el archivo webpack.config.js :
new ExtractTextPlugin({ "filename": "styles/[name].[contenthash:20].bundle.css", "disable": false }),
ejecute npm run build ya que ng build ya no funciona en aplicaciones expulsadas. Debe obtener el directorio dist con scripts y directorios de estilos dentro de él junto con sus archivos JS/CSS, index.html debe ubicarse directamente debajo de dist y tener las inclusiones correctas como:
<link href="styles/styles.d41d8cd98f00b204e980.bundle.css" rel="stylesheet"/> <script type="text/javascript" src="scripts/inline.3d27fc24e48981450c35.bundle.js"></script>
Actualizar:
Desde Angular 7 , el comando de expulsión se ha deshabilitado, por lo que esta solución ya no funcionará ( consulte esta pregunta relacionada ).
puede cambiar el directorio dist cambiando outDir en angular-cli.json pero no puede establecer un directorio separado para archivos js .
si desea hacer eso, tendrá que escribir un pequeño script de nodo que se ejecute después de la compilación y copie los archivos que desea en dist/scripts . También tendrá que cambiar las etiquetas <script> dentro de index.html para que apunten a la nueva ubicación.