Skip to content

Commit 0ec2be1

Browse files
authored
Merge pull request #36 from uptick/feature/esbuild
feature: replacing webpack with esbuild.
2 parents 83a479d + a487531 commit 0ec2be1

File tree

7 files changed

+1656
-2702
lines changed

7 files changed

+1656
-2702
lines changed

.eslintrc

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,46 @@
11
{
22
"plugins": [
3-
"babel"
3+
"react",
4+
"@typescript-eslint"
45
],
5-
"parser": "babel-eslint",
6+
"parser": "@typescript-eslint/parser",
67
"rules": {
7-
"comma-dangle": [2, "always-multiline"],
8-
"space-before-function-paren": [2, "never"],
8+
9+
// stops the 'React' was used before it was defined no-use-before-define error for .js files.
10+
"no-use-before-define": "off",
11+
"@typescript-eslint/no-use-before-define": ["error"],
12+
13+
"react/prop-types": 1,
14+
"react/jsx-handler-names": "off",
15+
"react/jsx-uses-react": "error",
16+
"react/jsx-uses-vars": "error",
17+
18+
"comma-dangle": [2, {
19+
"arrays": "always-multiline",
20+
"exports": "always-multiline",
21+
"functions": "never",
22+
"imports": "always-multiline",
23+
"objects": "always-multiline"
24+
}],
25+
26+
"space-before-function-paren": [2, {
27+
"anonymous": "never",
28+
"named": "never",
29+
"asyncArrow": "always"
30+
}],
31+
932
"jsx-quotes": [2, "prefer-double"],
1033
"no-var": 2,
1134

12-
"babel/no-invalid-this": 1,
13-
"babel/semi": [2, "never"],
14-
"react/prop-types": "warn"
35+
"semi": [2, "never"],
36+
"lines-between-class-members": "off"
1537
},
38+
1639
"extends": ["standard", "standard-react"],
40+
1741
"env": {
42+
"browser": true,
1843
"jest": true,
44+
"jasmine": true
1945
}
2046
}

esbuild.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
const { build } = require("esbuild");
2+
const { nodeExternalsPlugin } = require("esbuild-node-externals");
3+
4+
build({
5+
entryPoints: ["src/index.js"],
6+
outdir: "dist",
7+
bundle: true,
8+
sourcemap: true,
9+
minify: true,
10+
splitting: true,
11+
format: "esm",
12+
target: ["es2015"],
13+
loader: {
14+
".js": "jsx",
15+
},
16+
plugins: [nodeExternalsPlugin({ allowList: ['jquery', 'classnames', 'clone'], })],
17+
}).catch(() => process.exit(1));

index.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

package.json

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,19 @@
11
{
22
"name": "react-object-table",
3-
"version": "0.6.0",
3+
"version": "0.7.0",
44
"description": "React powered table of objects, designed to be editable and fast.",
5-
"main": "src/index.js",
5+
"main": "dist/index.js",
6+
"module": "dist/index.js",
7+
"exports": {
8+
".": {
9+
"require": "./dist/index.js",
10+
"import": "./dist/index.js"
11+
}
12+
},
613
"scripts": {
714
"publish-demo": "git branch -D gh-pages; git push origin --delete gh-pages; git checkout -b gh-pages; cd demo-site; yarn; npm run build; cd ..; git add .; git add -f demo-site/dist; git add -f demo-site/node_modules/uptick-demo-site/dist; git commit -m \"Demo site build\"; git push origin gh-pages; git checkout master; git push origin `git subtree split --prefix demo-site gh-pages`:gh-pages --force;",
815
"test": "echo \"Error: no test specified\" && exit 1",
9-
"build-js": "./node_modules/webpack/bin/webpack.js",
16+
"build-js": "rm -rf dist && node ./esbuild.js",
1017
"build-css": "./node_modules/node-sass/bin/node-sass src/object-table.sass dist/react-object-table.css",
1118
"build": "npm run build-js; npm run build-css",
1219
"prepublish": "npm run build"
@@ -29,38 +36,31 @@
2936
},
3037
"homepage": "https://github.com/uptick/react-object-table#readme",
3138
"dependencies": {
32-
"classnames": "^2.2.3",
33-
"clone": "^1.0.2"
39+
"classnames": "^2.3.1",
40+
"clone": "^2.1.2"
3441
},
3542
"peerDependencies": {
3643
"jquery": "^3.x",
3744
"react": "15.x - 16.x",
3845
"react-dom": "15.x - 16.x"
3946
},
4047
"devDependencies": {
41-
"babel-cli": "^6.6.4",
42-
"babel-core": "^6.5.2",
43-
"babel-eslint": "^7.2.3",
44-
"babel-loader": "^6.2.2",
45-
"babel-plugin-add-module-exports": "^0.1.2",
46-
"babel-preset-env": "^1.6.1",
47-
"babel-preset-react": "^6.5.0",
48-
"babel-preset-stage-0": "^6.5.0",
49-
"eslint": "^3.19.0",
50-
"eslint-config-standard": "^10.2.1",
51-
"eslint-config-standard-jsx": "^4.0.1",
52-
"eslint-config-standard-react": "^5.0.0",
53-
"eslint-plugin-babel": "^4.1.1",
54-
"eslint-plugin-import": "^2.3.0",
55-
"eslint-plugin-node": "^4.2.2",
56-
"eslint-plugin-promise": "^3.5.0",
57-
"eslint-plugin-react": "^7.0.1",
58-
"eslint-plugin-standard": "^3.0.1",
59-
"jquery": "^3.1.1",
60-
"node-sass": "^3.4.2",
61-
"react": "^15.4",
62-
"react-dom": "^15.4",
63-
"webpack": "^1.12.13"
64-
},
65-
"browserDependencies": {}
48+
"@typescript-eslint/eslint-plugin": "^4.26.0",
49+
"@typescript-eslint/parser": "^4.26.0",
50+
"esbuild": "^0.12.5",
51+
"esbuild-node-externals": "^1.2.0",
52+
"eslint": "^7.27.0",
53+
"eslint-config-standard": "*",
54+
"eslint-config-standard-react": "*",
55+
"eslint-plugin-import": "*",
56+
"eslint-plugin-node": "*",
57+
"eslint-plugin-promise": "*",
58+
"eslint-plugin-react": "*",
59+
"eslint-plugin-standard": "*",
60+
"jquery": "^3.6.0",
61+
"node-sass": "^6.0.0",
62+
"react": "^16.13.0",
63+
"react-dom": "^16.13.0",
64+
"typescript": "^4.3.2"
65+
}
6666
}

src/index.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import ObjectTable, { ObjectCell, ObjectRow, BaseEditor, TextEditor, TextDrawer } from './object-table'
2+
3+
export default ObjectTable
4+
export { ObjectCell, ObjectRow, BaseEditor, TextEditor, TextDrawer }

webpack.config.js

Lines changed: 0 additions & 32 deletions
This file was deleted.

0 commit comments

Comments
 (0)