From 92ca08b276d5968e20a83a64174cf99d44dd9b6b Mon Sep 17 00:00:00 2001 From: Joris Machielse Date: Fri, 2 Oct 2020 12:31:33 +0200 Subject: [PATCH] Added build config from @Juice10/record-once-rrweb --- .gitignore | 1 + package.json | 19 ++++++++++-- webpack.config-inject.js | 62 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 webpack.config-inject.js diff --git a/.gitignore b/.gitignore index 8b30d6c161..6604722a44 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ package-lock.json yarn.lock build dist +dist-electron es lib diff --git a/package.json b/package.json index 467c4866c0..4384804b9c 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,15 @@ "test:watch": "PUPPETEER_HEADLESS=true npm run test -- --watch --watch-extensions js,ts", "repl": "npm run bundle:browser && cross-env TS_NODE_CACHE=false TS_NODE_FILES=true ts-node scripts/repl.ts", "bundle:browser": "cross-env BROWSER_ONLY=true rollup --config", - "bundle": "rollup --config", - "typings": "tsc -d --declarationDir typings" + "bundle:inject": "npx webpack --config webpack.config-inject.js", + "bundle:default": "rollup --config", + "bundle": "run-s bundle:inject bundle:default", + "dev": "run-p dev:**", + "dev:default": "rollup --watch --config", + "dev:inject": "npx webpack --watch --config webpack.config-inject.js", + "typings": "tsc -d --declarationDir typings", + "start:client": "webpack-dev-server --config webpack.config.js", + "start": "babel-watch ./scrubber/server.js" }, "repository": { "type": "git", @@ -24,6 +31,7 @@ "typings": "typings/entries/all.d.ts", "files": [ "dist", + "dist-electron", "lib", "es", "typings" @@ -45,6 +53,7 @@ "inquirer": "^6.2.1", "jest-snapshot": "^23.6.0", "mocha": "^5.2.0", + "npm-run-all": "^4.1.5", "puppeteer": "^1.11.0", "rollup": "^2.3.3", "rollup-plugin-commonjs": "^9.2.0", @@ -55,7 +64,11 @@ "ts-node": "^7.0.1", "tslib": "^1.9.3", "tslint": "^4.5.1", - "typescript": "^3.9.5" + "typescript": "^3.9.5", + "webpack-cli": "^3.3.12", + "webpack-dev-middleware": "^3.7.2", + "webpack-dev-server": "^3.11.0", + "webpack-hot-middleware": "^2.25.0" }, "dependencies": { "@types/css-font-loading-module": "0.0.4", diff --git a/webpack.config-inject.js b/webpack.config-inject.js new file mode 100644 index 0000000000..9013e3a017 --- /dev/null +++ b/webpack.config-inject.js @@ -0,0 +1,62 @@ +const path = require('path'); + +module.exports = { + mode: 'development', + entry: { + app: ['./src/electron-inject'], + }, + output: { + path: path.resolve(__dirname, 'dist-electron'), + filename: 'index.js', + }, + target: 'electron-preload', + resolve: { + extensions: ['.tsx', '.ts', '.js', '.mjs'], + + alias: { + 'rrweb/record$': path.resolve(__dirname, 'src/record/index.ts'), + rrweb$: path.resolve(__dirname, 'src/index.ts'), + }, + }, + module: { + + rules: [ + { + test: /\.tsx?$/, + use: 'ts-loader', + exclude: /node_modules/, + }, + { + test: /\.css$/i, + use: ['style-loader', 'css-loader'], + }, + { + test: /\.mjs$/, + include: /node_modules/, + type: 'javascript/auto', + }, + { + test: /scrubber\/scripts\.js$/, + exclude: /(node_modules|bower_components)/, + use: [ + { + loader: 'babel-loader', + options: { + presets: [ + [ + '@babel/preset-env', + { + modules: 'auto', // commonjs,amd,umd,systemjs,false + useBuiltIns: 'usage', + targets: '> 0.25%, not dead', + corejs: 3, + }, + ], + ], + }, + }, + ], + }, + ], + }, +}; \ No newline at end of file