79 lines
1.8 KiB
JavaScript
79 lines
1.8 KiB
JavaScript
const path = require('path');
|
|
const webpack = require('webpack');
|
|
const ESLintPlugin = require('eslint-webpack-plugin');
|
|
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
|
|
|
|
const JSLoader = {
|
|
test: /\.js$/i,
|
|
use: {
|
|
loader: 'babel-loader',
|
|
options: {
|
|
presets: [
|
|
[
|
|
'@babel/preset-env',
|
|
{
|
|
'corejs': '3',
|
|
'useBuiltIns': 'entry',
|
|
'targets': {
|
|
'browsers': [
|
|
'edge >= 16',
|
|
'safari >= 9',
|
|
'firefox >= 57',
|
|
'ie >= 11',
|
|
'ios >= 9',
|
|
'chrome >= 49',
|
|
],
|
|
},
|
|
},
|
|
],
|
|
['@babel/preset-flow'],
|
|
],
|
|
plugins: [
|
|
'@babel/plugin-proposal-class-properties',
|
|
'@babel/plugin-proposal-private-methods',
|
|
'@babel/plugin-proposal-optional-chaining',
|
|
],
|
|
},
|
|
},
|
|
};
|
|
|
|
module.exports = {
|
|
mode: 'development',
|
|
devtool: 'source-map',
|
|
entry: {
|
|
'aicc': './src/exports/aicc.js',
|
|
'scorm12': './src/exports/scorm12.js',
|
|
'scorm2004': './src/exports/scorm2004.js',
|
|
'scorm-again': './src/exports/scorm-again.js',
|
|
'aicc.min': './src/exports/aicc.js',
|
|
'scorm12.min': './src/exports/scorm12.js',
|
|
'scorm2004.min': './src/exports/scorm2004.js',
|
|
'scorm-again.min': './src/exports/scorm-again.js',
|
|
},
|
|
target: ['web', 'es5'],
|
|
module: {
|
|
rules: [
|
|
JSLoader,
|
|
],
|
|
},
|
|
output: {
|
|
path: path.resolve(__dirname, 'dist'),
|
|
environment: {
|
|
arrowFunction: false,
|
|
},
|
|
},
|
|
optimization: {
|
|
minimize: true,
|
|
minimizer: [new UglifyJsPlugin({
|
|
include: /\.min\.js$/,
|
|
})],
|
|
},
|
|
plugins: [
|
|
new ESLintPlugin({
|
|
overrideConfigFile: path.resolve(__dirname, '.eslintrc.js'),
|
|
context: path.resolve(__dirname, '../src'),
|
|
files: '**/*.js',
|
|
}),
|
|
],
|
|
};
|