const StyleLintPlugin = require('stylelint-webpack-plugin'); const packageJSON = require('./package.json'); const path = require('path'); const DIST = path.resolve("./dist"); // eslint-disable-next-line no-process-env const MODE = process.env.NODE_ENV || 'development'; const SOURCE_MAP = 'source-map'; const DEVTOOL = MODE === 'development' ? SOURCE_MAP : false; console.log('Webpack mode:', MODE); // eslint-disable-line no-console const config = { devtool: DEVTOOL, entry: ["./src/index.js"], externals: { jquery: { amd: "jquery", commonjs: "jquery", commonjs2: "jquery", root: "_", }, qlik: { amd: "qlik", commonjs: "qlik", commonjs2: "qlik", root: "_", }, }, mode: MODE, module: { rules: [ { enforce: "pre", exclude: /(node_modules|Library)/, loader: "eslint-loader", options: { failOnError: true, }, test: /\.(js|jsx)$/, }, { exclude: /node_modules/, test: /\.(js|jsx)$/, use: { loader: "babel-loader", options: { plugins: [ "@babel/plugin-transform-async-to-generator", "@babel/plugin-proposal-class-properties", ], presets: ["@babel/preset-env", "@babel/preset-react"], }, }, }, { test: /.less$/, use: ["style-loader", "css-loader", "less-loader"], }, ], }, output: { filename: "qlik-smart-pivot.js", libraryTarget: "amd", path: DIST, }, plugins: [ new StyleLintPlugin({ files: "**/*.less", }), ], }; module.exports = config;