Switching from grunt to webpack for compilation, minify wasn't working

This commit is contained in:
Jonathan Putney
2022-02-11 08:41:08 -05:00
parent 9cd9cf096a
commit a91b608c11
18 changed files with 3120 additions and 33103 deletions

View File

@@ -78,7 +78,7 @@ jobs:
# run babel compile
- run: git config user.email "jputney@noverant.com" && git config user.name "Jonathan Putney"
- run: ./node_modules/.bin/grunt
- run: ./node_modules/.bin/webpack --bail --config webpack.js
- run: git add --all dist/
# run jsdoc
@@ -101,4 +101,4 @@ jobs:
- store_artifacts: # upload test coverage as artifact
path: ./coverage/lcov.info
prefix: tests
prefix: tests

View File

@@ -270,8 +270,8 @@ I welcome any and all feedback and contributions to this project! I'm sure it wo
#### Setup and Development
You will need `node` installed on your local machine, and you'll have to run `npm install` in the repo directory before starting development.
To run a build, you need to just run the `grunt` command in the root of the project.
To run a build, you need to just run the `yarn run compile` command in the root of the project.
Similarly, to run the tests, you just run the `grunt test` or `npm test` command.
Similarly, to run the tests, you just run the `yarn test` command.
Before submitting pull requests, please also run `eslint ./src --fix` against your code first, otherwise your pull request build could fail.

908
dist/aicc.js vendored

File diff suppressed because one or more lines are too long

1
dist/aicc.js.map vendored Normal file

File diff suppressed because one or more lines are too long

7336
dist/aicc.min.js vendored

File diff suppressed because one or more lines are too long

1212
dist/scorm-again.js vendored

File diff suppressed because one or more lines are too long

1
dist/scorm-again.js.map vendored Normal file

File diff suppressed because one or more lines are too long

10972
dist/scorm-again.min.js vendored

File diff suppressed because one or more lines are too long

727
dist/scorm12.js vendored

File diff suppressed because one or more lines are too long

1
dist/scorm12.js.map vendored Normal file

File diff suppressed because one or more lines are too long

5563
dist/scorm12.min.js vendored

File diff suppressed because one or more lines are too long

794
dist/scorm2004.js vendored

File diff suppressed because one or more lines are too long

1
dist/scorm2004.js.map vendored Normal file

File diff suppressed because one or more lines are too long

6963
dist/scorm2004.min.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -1,90 +0,0 @@
module.exports = function(grunt) {
grunt.initConfig({
mochaTest: {
test: {
options: {
reporter: 'list',
require: '@babel/register',
noFail: false,
recursive: true,
captureFile: false,
},
src: ['test/**/*.spec.js'],
},
},
watch: {
scripts: {
files: ['src/**/*.js'],
tasks: ['default'],
options: {
spawn: false,
},
},
},
browserify: {
development: {
files: [{
expand: true,
cwd: 'src/exports/',
src: ['*.js'],
dest: 'dist/',
ext: '.js',
extDot: 'first',
}],
options: {
browserifyOptions: {debug: true},
transform: [
[
'babelify', {
'presets': ['@babel/preset-env', '@babel/preset-flow'],
'plugins': [
'@babel/plugin-proposal-class-properties',
'@babel/plugin-proposal-private-methods',
'@babel/plugin-proposal-optional-chaining',
],
},
],
],
},
},
production: {
files: [{
expand: true,
cwd: 'src/exports/',
src: ['*.js'],
dest: 'dist/',
ext: '.min.js',
extDot: 'first',
}],
options: {
browserifyOptions: {debug: false},
transform: [
[
'babelify', {
'presets': ['@babel/preset-env', '@babel/preset-flow'],
'plugins': [
'@babel/plugin-proposal-class-properties',
'@babel/plugin-proposal-private-methods',
'@babel/plugin-proposal-optional-chaining',
],
},
'uglifyify', {
sourceMap: true,
},
],
],
},
},
},
});
grunt.loadNpmTasks('grunt-browserify');
grunt.loadNpmTasks('grunt-mocha-test');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('test', 'mochaTest');
grunt.registerTask('default',
['browserify:development', 'browserify:production']);
};

View File

@@ -3,6 +3,15 @@
"version": "1.6.2",
"description": "A modern SCORM JavaScript run-time library for AICC, SCORM 1.2, and SCORM 2004",
"main": "dist/scorm-again.min.js",
"browserslist": [
"> 1%",
"edge >= 16",
"safari >= 9",
"firefox >= 57",
"ie >= 11",
"ios >= 9",
"chrome >= 49"
],
"directories": {
"test": "test"
},
@@ -19,18 +28,15 @@
"@types/chai": "^4.3.0",
"@types/mocha": "^9.1.0",
"babel-eslint": "^11.0.0-beta.2",
"babel-loader": "^8.2.3",
"babelify": "^10.0.0",
"browserify": "^17.0.0",
"chai": "^4.3.6",
"eslint": "^8.8.0",
"eslint-config-google": "^0.14.0",
"eslint-plugin-import": "^2.25.4",
"eslint-webpack-plugin": "^3.1.1",
"fetch-pretender": "^1.5.0",
"grunt": "^1.4.1",
"grunt-browserify": "^6.0.0",
"grunt-cli": "^1.4.3",
"grunt-contrib-watch": "^1.1.0",
"grunt-mocha-test": "^0.13.3",
"jsdoc": "^3.6.10",
"jsdoc-babel": "^0.5.0",
"lodash.debounce": "^4.0.8",
@@ -40,11 +46,13 @@
"mochawesome": "^7.0.1",
"nyc": "^15.1.0",
"sinon": "^13.0.1",
"uglifyify": "^5.0.2"
"uglifyjs-webpack-plugin": "^2.2.0",
"webpack": "^5.68.0",
"webpack-cli": "^4.9.2"
},
"scripts": {
"test": "./node_modules/.bin/mocha --require @babel/register --bdd --recursive --reporter list",
"compile": "./node_modules/.bin/grunt default",
"compile": "./node_modules/.bin/webpack --bail --config webpack.js",
"fix": "./node_modules/.bin/eslint ./src --fix"
},
"repository": {

78
webpack.js Normal file
View File

@@ -0,0 +1,78 @@
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',
}),
],
};

1546
yarn.lock

File diff suppressed because it is too large Load Diff