Tengo dos proyectos muy similares, ambos códigos base funcionan sobre el mismo paquete/archivos vueConfig, sin embargo, cuando construyo uno de los proyectos, obtengo un montón de archivos js fuera de la carpeta js, que es lo que necesito. arreglar.
Ya verifiqué soluciones como esta y verifiqué la documentación, pero aún obtengo el mismo resultado.
Aquí está la parte de scripts de mi archivo de paquete
"scripts": { "serve:vlox": "env APP_TYPE=vloxEditor vue-cli-service serve vloxEditor/src/main.js", "build:vlox": "env APP_TYPE=vloxEditor vue-cli-service build vloxEditor/src/main.js", "serve:res": "env APP_TYPE=resourceEditor vue-cli-service serve resourceEditor/src/main.js", "build:res": "env APP_TYPE=resourceEditor vue-cli-service build resourceEditor/src/main.js" },y mi vue.config
var fs = require('fs'); const path = require('path') const appDir = process.env.APP_TYPE; module.exports = { outputDir: path.resolve(__dirname, `${appDir}/dist`), publicPath: `./${appDir}-assets`, chainWebpack: config => { config.resolve.alias.set('@I', path.resolve(__dirname, '../interfaces')) config.resolve.alias.set('@shared', path.resolve(__dirname, './shared')) config.plugin("html").tap(args => { args[0].template = path.resolve(__dirname, `${appDir}/index.html`) return args }) }, devServer: { "port": 9090, "https": { "key": fs.readFileSync('../../vue-res/certs/ssl.key'), "cert": fs.readFileSync('../../vue-res/certs/ssl.crt') }, proxy: { '^/vlox': { target: 'https://172.25.37.144', changeOrigin: true }, } } }La estructura general de mi proyecto es la siguiente
El problema estaba relacionado con ace y cómo carga internamente los diferentes componentes, que es dinámico y conduce a toda la basura en la carpeta principal, por suerte esto y esto dio la idea correcta.
Este es el vue.config.js que utilicé para solucionar el problema
var fs = require('fs'); const webpack = require('webpack') const path = require('path') const appDir = process.env.APP_TYPE; module.exports = { outputDir: path.resolve(__dirname, `${appDir}/dist`), configureWebpack: { plugins: [ new webpack.NormalModuleReplacementPlugin(/^file-loader\?esModule=false!(.*)/, (res) => { res.request = res.request.replace(/^file-loader\?esModule=false!/, 'file-loader?esModule=false&outputPath=assets/js/ace-editor-modes!') }), ], }, chainWebpack: config => { config.resolve.alias.set('@I', path.resolve(__dirname, '../interfaces')) config.resolve.alias.set('@shared', path.resolve(__dirname, './shared')) config.plugin("html").tap(args => { args[0].template = path.resolve(__dirname, `${appDir}/index.html`) return args }) }, devServer: { "port": 9090, "https": { "key": fs.readFileSync('../../vue-res/certs/ssl.key'), "cert": fs.readFileSync('../../vue-res/certs/ssl.crt') }, proxy: { '^/vlox': { target: 'https://172.25.42.163', changeOrigin: true }, } } }Y ahora todo lo bueno está en su propia carpeta.