const path = require('path');
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
module.exports = {
devServer: {
headers: {
'Access-Control-Allow-Origin': '*',
},
proxy: {
'/automation': {
target: 'http://10.44.179.147:8288',
ws: false,
changeOrigin: true,
pathRewrite: {
},
},
},
port: 4032,
host: '0.0.0.0',
},
publicPath: process.env.NODE_ENV === 'development' ? '/' : './',
outputDir: 'ismp-automation-web',
assetsDir: 'static/',
indexPath: 'index.html',
filenameHashing: true,
lintOnSave: true,
css: {
loaderOptions: {
less: {
lessOptions: {
javascriptEnabled: true
}
}
}
},
chainWebpack: (config) => {
config.resolve.symlinks(true);
config.module.rule('svg').exclude.add(path.resolve(__dirname, 'src/assets/icons')).end();
config.module
.rule('svg-sprite')
.test(/\.svg$/)
.include.add(path.resolve(__dirname, 'src/assets/icons'))
.end()
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({
symbolId: 'icon-[name]',
})
.end();
},
configureWebpack: {
resolve: {
alias: {
'@logicflow/core': path.resolve(__dirname, 'node_modules/@logicflow/core'),
'@logicflow/extension': path.resolve(__dirname, 'node_modules/@logicflow/extension')
}
},
output: {
library: 'vueApp',
libraryTarget: 'umd',
},
plugins: [
new MonacoWebpackPlugin({
languages: ['javascript', 'typescript', 'python', 'java', 'csharp', 'cpp', 'html', 'css', 'json', 'shell', 'sql'],
features: ['coreCommands', 'find'],
})
],
},
};