Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/polls.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordartcafe <github@dartcafe.de>2022-03-13 12:27:19 +0300
committerdartcafe <github@dartcafe.de>2022-03-13 12:27:19 +0300
commitc8bd4560b7cf4759aa520479cdb446641b9275cf (patch)
treed52db9344e3f8de448d4f91cdfd29dd849230294 /webpack.config.js
parentc021aea7a822abca406e910d9b1b708b59347bbe (diff)
use @nextcloud/webpack-vue-config
Signed-off-by: dartcafe <github@dartcafe.de>
Diffstat (limited to 'webpack.config.js')
-rw-r--r--webpack.config.js134
1 files changed, 21 insertions, 113 deletions
diff --git a/webpack.config.js b/webpack.config.js
index 4a2793cc..59b1e064 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -1,120 +1,28 @@
const path = require('path')
-const webpack = require('webpack')
-const { VueLoaderPlugin } = require('vue-loader')
-const ESLintPlugin = require('eslint-webpack-plugin')
-const StyleLintPlugin = require('stylelint-webpack-plugin')
-const TerserPlugin = require('terser-webpack-plugin')
+const webpackConfig = require('@nextcloud/webpack-vue-config')
+const webpackRules = require('@nextcloud/webpack-vue-config/rules')
-const appName = process.env.npm_package_name
-const appVersion = process.env.npm_package_version
-const buildMode = process.env.NODE_ENV
-const isDev = buildMode === 'development'
-
-module.exports = {
- mode: buildMode,
- devtool: isDev ? 'eval' : false,
- entry: {
- 'polls-collections': path.join(__dirname, 'src/js/', 'collections.js'),
- polls: path.join(__dirname, 'src/js/', 'main.js'),
- userSettings: path.join(__dirname, 'src/js/', 'userSettings.js'),
- adminSettings: path.join(__dirname, 'src/js/', 'adminSettings.js'),
- },
- output: {
- clean: true,
- path: path.resolve(__dirname, './js'),
- publicPath: '/js/',
- filename: '[name].js',
- chunkFilename: `${appName}.[name].[contenthash].js`,
- chunkLoadingGlobal: 'webpackJsonpOCAPolls',
- devtoolNamespace: appName,
- devtoolModuleFilenameTemplate(info) {
- const rootDir = process.cwd()
- const rel = path.relative(rootDir, info.absoluteResourcePath)
- return `webpack:///${appName}/${rel}`
- },
- },
- module: {
- rules: [
- {
- test: /\.vue$/,
- loader: 'vue-loader',
- options: {
- compilerOptions: {
- whitespace: 'condense',
- },
- },
- },
- {
- test: /\.js$/,
- loader: 'babel-loader',
- exclude: /node_modules/,
- },
- {
- test: /\.css$/,
- use: [
- 'vue-style-loader',
- {
- loader: 'css-loader',
- options: { esModule: false },
- },
- ],
- },
- {
- test: /\.scss$/,
- use: [
- 'vue-style-loader',
- {
- loader: 'css-loader',
- options: { esModule: false },
- },
- 'sass-loader',
- ],
- },
- {
- test: /\.(png|jpg|gif|svg)$/,
- type: 'asset/inline',
- },
- ],
- },
+webpackConfig.entry = {
+ main: path.join(__dirname, 'src/js/', 'main.js'),
+ collections: path.join(__dirname, 'src/js/', 'collections.js'),
+ userSettings: path.join(__dirname, 'src/js/', 'userSettings.js'),
+ adminSettings: path.join(__dirname, 'src/js/', 'adminSettings.js'),
+}
- optimization: {
- chunkIds: 'named',
- splitChunks: {
- automaticNameDelimiter: '-',
- },
- minimize: !isDev,
- minimizer: [
- new TerserPlugin({
- terserOptions: {
- output: {
- comments: false,
- },
- },
- extractComments: true,
- }),
- ],
- },
+webpackConfig.output = {
+ ...webpackConfig.output,
+ clean: true,
+}
- plugins: [
- new VueLoaderPlugin(),
- new webpack.DefinePlugin({
- appName: JSON.stringify('polls'),
- }),
- new ESLintPlugin({
- quiet: true,
- extensions: ['js', 'vue'],
- }),
- new StyleLintPlugin({
- files: 'src/**/*.{css,scss,vue}',
- }),
- new webpack.DefinePlugin({ appName: JSON.stringify(appName) }),
- new webpack.DefinePlugin({ appVersion: JSON.stringify(appVersion) }),
- ],
- resolve: {
- alias: {
- vue$: 'vue/dist/vue.esm.js',
- src: path.resolve(__dirname, 'src/js'),
+webpackRules.RULE_VUE = {
+ ...webpackRules.RULE_VUE,
+ options: {
+ compilerOptions: {
+ whitespace: 'condense',
},
- extensions: ['*', '.js', '.vue', '.json'],
},
}
+
+webpackConfig.module.rules = Object.values(webpackRules)
+
+module.exports = webpackConfig