mirror of https://github.com/interlegis/sapl.git
Leandro Roberto
4 years ago
2 changed files with 143 additions and 2 deletions
@ -0,0 +1,141 @@ |
|||||
|
const path = require('path') |
||||
|
const each = require('lodash/fp/each') |
||||
|
|
||||
|
const MomentLocalesPlugin = require('moment-locales-webpack-plugin') |
||||
|
const BundleTrackerPlugin = require('webpack-bundle-tracker') |
||||
|
const CompressionPlugin = require('compression-webpack-plugin') |
||||
|
|
||||
|
class RelativeBundleTrackerPlugin extends BundleTrackerPlugin { |
||||
|
convertPathChunks (chunks) { |
||||
|
each(each(chunk => { |
||||
|
chunk.path = path.relative(this.options.path, chunk.path) |
||||
|
}))(chunks) |
||||
|
} |
||||
|
|
||||
|
writeOutput (compiler, contents) { |
||||
|
if (contents.status === 'done') { |
||||
|
this.convertPathChunks(contents.chunks) |
||||
|
} |
||||
|
super.writeOutput(compiler, contents) |
||||
|
} |
||||
|
} |
||||
|
// module.exports = RelativeBundleTrackerPlugin
|
||||
|
|
||||
|
const dotenv = require('dotenv') |
||||
|
dotenv.config({ |
||||
|
path: '../sapl/.env' |
||||
|
}) |
||||
|
|
||||
|
var FRONTEND_CUSTOM = process.env.FRONTEND_CUSTOM === undefined ? false : process.env.FRONTEND_CUSTOM === 'True' |
||||
|
|
||||
|
var HOST_NAME = 'localhost' |
||||
|
|
||||
|
module.exports = { |
||||
|
runtimeCompiler: true, |
||||
|
publicPath: process.env.NODE_ENV === 'production' ? '/static/sapl/frontend' : `http://${HOST_NAME}:8080/`, |
||||
|
outputDir: FRONTEND_CUSTOM ? 'dist' : '../sapl/static/sapl/frontend', |
||||
|
|
||||
|
chainWebpack: config => { |
||||
|
config.plugins.delete('html') |
||||
|
config.plugins.delete('preload') |
||||
|
config.plugins.delete('prefetch') |
||||
|
|
||||
|
config |
||||
|
.plugin('RelativeBundleTrackerPlugin') |
||||
|
.use(RelativeBundleTrackerPlugin, [{ |
||||
|
path: '.', |
||||
|
filename: FRONTEND_CUSTOM ? './webpack-stats.json' : '../sapl/webpack-stats.json' |
||||
|
}]) |
||||
|
|
||||
|
config |
||||
|
.plugin('MomentLocalesPlugin') |
||||
|
.use(MomentLocalesPlugin, [{ |
||||
|
localesToKeep: ['pt-BR'] |
||||
|
}]) |
||||
|
|
||||
|
if (process.env.NODE_ENV === 'production') { |
||||
|
config.optimization.minimizer('terser').tap((args) => { |
||||
|
args[0].terserOptions.compress.drop_console = true |
||||
|
args[0].extractComments = true |
||||
|
args[0].cache = true |
||||
|
return args |
||||
|
}) |
||||
|
|
||||
|
config |
||||
|
.plugin('CompressionPlugin') |
||||
|
.use(CompressionPlugin, [{ |
||||
|
}]) |
||||
|
} else { |
||||
|
config |
||||
|
.devtool('source-map') |
||||
|
} |
||||
|
|
||||
|
config.resolve.alias |
||||
|
.set('__STATIC__', 'static') |
||||
|
|
||||
|
config.module |
||||
|
.rule('vue') |
||||
|
.use('vue-loader') |
||||
|
.loader('vue-loader') |
||||
|
.tap(options => { |
||||
|
options.transformAssetUrls = { |
||||
|
img: 'src', |
||||
|
image: 'xlink:href', |
||||
|
'b-img': 'src', |
||||
|
'b-img-lazy': ['src', 'blank-src'], |
||||
|
'b-card': 'img-src', |
||||
|
'b-card-img': 'img-src', |
||||
|
'b-carousel-slide': 'img-src', |
||||
|
'b-embed': 'src' |
||||
|
} |
||||
|
|
||||
|
return options |
||||
|
}) |
||||
|
|
||||
|
config.devServer |
||||
|
.public('') |
||||
|
.port(8080) |
||||
|
.hot(true) |
||||
|
.watchOptions({ |
||||
|
poll: true |
||||
|
}) |
||||
|
.watchContentBase(true) |
||||
|
.https(false) |
||||
|
.headers({ |
||||
|
'Access-Control-Allow-Origin': '*' |
||||
|
}) |
||||
|
.contentBase([ |
||||
|
path.join(__dirname, 'public'), |
||||
|
path.join(__dirname, 'src', 'assets') |
||||
|
]) |
||||
|
|
||||
|
config |
||||
|
.plugin('provide') |
||||
|
.use(require('webpack/lib/ProvidePlugin'), [{ |
||||
|
$: 'jquery', |
||||
|
jquery: 'jquery', |
||||
|
'window.jQuery': 'jquery', |
||||
|
jQuery: 'jquery', |
||||
|
_: 'lodash' |
||||
|
}]) |
||||
|
|
||||
|
config.entryPoints.delete('app') |
||||
|
|
||||
|
config |
||||
|
.entry('global') |
||||
|
.add('./src/__global/main.js') |
||||
|
.end() |
||||
|
|
||||
|
config.entry('compilacao') |
||||
|
.add('./src/__apps/compilacao/main.js') |
||||
|
.end() |
||||
|
|
||||
|
config.entry('painel') |
||||
|
.add('./src/__apps/painel/main.js') |
||||
|
.end() |
||||
|
|
||||
|
config.entry('parlamentar') |
||||
|
.add('./src/__apps/parlamentar/main.js') |
||||
|
.end() |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue