q42-cms-components
Version:
Front-end package that provides a UI on top of the QMS back-end
114 lines (110 loc) • 3.25 kB
JavaScript
const webpack = require('webpack');
const { VueLoaderPlugin } = require('vue-loader');
module.exports = {
entry: {
"cms": "./Statics/cms.js",
},
output: {
// 'path' is set via package.json
filename: "[name].js",
publicPath: "/statics/"
},
module: {
rules: [
{
test: /\.(js|vue)$/,
use: [
{
loader: 'eslint-loader',
options: {
"baseConfig": {
"extends": ["eslint:recommended","plugin:vue/essential"],
"globals":{
"require": true // still needed for Markdown lib
},
"env": {
"es6": true,
"browser": true,
"commonjs": true
},
},
"rules": {
"no-console": ["warn", { "allow": ["warn","error"] }],
"vue/no-unused-components": false, // doesn't work with this.$options.components.[component]
"vue/require-component-is": false, // gives false positives: https://github.com/vuejs/eslint-plugin-vue/issues/869
},
"parser": "vue-eslint-parser",
"parserOptions": {
"ecmaVersion": 2019,
"sourceType": "module"
}
}
}
],
exclude: [/^(?=.*node_modules)(?!.*q42-cms-components).*|resources/],
enforce: 'pre'
},
{
test: /\.vue$/,
loader: 'vue-loader'
},
{
test: /\.(babel|js)$/,
use: [
{
loader: 'babel-loader',
options: {
presets: [
[
"@babel/preset-env",
{
"targets": [
// still used by NLO
"Chrome 58",
// we don't officially support other browsers, but since this cms is also used outside NLO, we use 'support' some more browsers
"last 4 Safari versions",
"last 4 Firefox versions",
"last 4 Edge versions"
],
"loose": true,
"modules": false,
"useBuiltIns": "usage",
"corejs": "2"
}
]
]
}
}
],
exclude: [/^(?=.*node_modules)(?!.*q42-cms-components).*|resources/]
},
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
},
{
test: /\.scss$/,
use: ['style-loader', 'css-loader', 'sass-loader']
},
{
test: /\.(svg|woff(2)?)(\?[a-z0-9]+)?$/,
use: 'file-loader'
},
{
test: /\.(png|jpeg)$/,
use: 'url-loader'
}
]
},
resolve: {
alias: {
'vue$': 'vue/dist/vue.esm.js'
}
},
plugins: [
new VueLoaderPlugin(),
// Only include 'nl' locale for moment.js
new webpack.ContextReplacementPlugin(/moment[\/\\]locale$/, /^\.\/nl$/),
]
};