diff --git a/.browserslistrc b/.browserslistrc new file mode 100644 index 0000000..a912fb7 --- /dev/null +++ b/.browserslistrc @@ -0,0 +1,6 @@ +chrome >= 70 +chromeandroid >= 70 +ios >= 12 +safari >= 12 +edge >= 18 +firefox >= 68 \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index eaf19f9..7cd2bbd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2690,6 +2690,57 @@ "slash": "^3.0.0" } }, + "babel-loader": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", + "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "babel-plugin-dynamic-import-node": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", diff --git a/package.json b/package.json index 0ced927..ca801da 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "@babel/core": "^7.15.0", "@babel/preset-env": "^7.14.8", "babel-jest": "^27.0.6", + "babel-loader": "^8.2.2", "copy-webpack-plugin": "^6.4.1", "css-loader": "^5.2.7", "file-loader": "^6.2.0", diff --git a/webpack.config.js b/webpack.config.js index e2ee0ca..eb0a3dc 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -36,6 +36,18 @@ const makeScaffolding = ({full}) => ({ }, module: { rules: [ + { + test: /\.jsx?$/, + loader: 'babel-loader', + include: [ + path.resolve(__dirname, 'src'), + /node_modules[\\/]scratch-[^\\/]+[\\/]src/ + ], + options: { + babelrc: false, + presets: ['@babel/preset-env'] + } + }, { test: /\.(svg|png)$/i, use: [{