mirror of https://github.com/interlegis/sapl.git
2 changed files with 198 additions and 0 deletions
@ -0,0 +1,57 @@ |
|||||
|
{ |
||||
|
"name": "sapl-frontend", |
||||
|
"version": "0.1.0", |
||||
|
"private": true, |
||||
|
"scripts": { |
||||
|
"serve": "vue-cli-service serve", |
||||
|
"build": "vue-cli-service build", |
||||
|
"lint": "vue-cli-service lint" |
||||
|
}, |
||||
|
"dependencies": { |
||||
|
"@fortawesome/fontawesome-free": "^5.13.0", |
||||
|
"axios": "^0.19.2", |
||||
|
"axios-progress-bar": "^1.2.0", |
||||
|
"bootstrap": "^4.4.1", |
||||
|
"bootstrap-vue": "^2.12.0", |
||||
|
"diff": "^4.0.1", |
||||
|
"dotenv": "^6.2.0", |
||||
|
"exports-loader": "^0.7.0", |
||||
|
"imports-loader": "^0.8.0", |
||||
|
"jquery": "^3.5.1", |
||||
|
"jquery-mask-plugin": "^1.14.16", |
||||
|
"jquery-ui-themes": "^1.12.0", |
||||
|
"lodash": "^4.17.15", |
||||
|
"moment": "^2.24.0", |
||||
|
"moment-locales-webpack-plugin": "^1.1.2", |
||||
|
"popper.js": "^1.16.1", |
||||
|
"serialize-javascript": "^3.1.0", |
||||
|
"terser": "^4.6.11", |
||||
|
"tinymce": "^4.9.9", |
||||
|
"tinymce-light-skin": "^1.3.1", |
||||
|
"vue": "^2.6.11", |
||||
|
"webpack": "^4.43.0", |
||||
|
"webpack-jquery-ui": "^2.0.1", |
||||
|
"websocket-extensions": "^0.1.4" |
||||
|
}, |
||||
|
"devDependencies": { |
||||
|
"@vue/cli-plugin-babel": "^4.3.1", |
||||
|
"@vue/cli-plugin-eslint": "^4.3.1", |
||||
|
"@vue/cli-service": "^4.3.1", |
||||
|
"babel-eslint": "^10.1.0", |
||||
|
"compression-webpack-plugin": "^3.1.0", |
||||
|
"css-loader": "^3.5.2", |
||||
|
"eslint": "^6.8.0", |
||||
|
"eslint-config-standard": "^14.1.1", |
||||
|
"eslint-friendly-formatter": "^4.0.1", |
||||
|
"eslint-loader": "^4.0.0", |
||||
|
"eslint-plugin-import": "^2.20.2", |
||||
|
"eslint-plugin-node": "^11.1.0", |
||||
|
"eslint-plugin-promise": "^4.2.1", |
||||
|
"eslint-plugin-standard": "^4.0.1", |
||||
|
"eslint-plugin-vue": "^6.2.2", |
||||
|
"node-sass": "^4.13.1", |
||||
|
"sass-loader": "^8.0.2", |
||||
|
"vue-template-compiler": "^2.6.11", |
||||
|
"webpack-bundle-tracker": "^0.4.3" |
||||
|
} |
||||
|
} |
||||
@ -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('./frontend/src/__global/main.js') |
||||
|
.end() |
||||
|
|
||||
|
config.entry('compilacao') |
||||
|
.add('./frontend/src/__apps/compilacao/main.js') |
||||
|
.end() |
||||
|
|
||||
|
config.entry('painel') |
||||
|
.add('./frontend/src/__apps/painel/main.js') |
||||
|
.end() |
||||
|
|
||||
|
config.entry('parlamentar') |
||||
|
.add('./frontend/src/__apps/parlamentar/main.js') |
||||
|
.end() |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue