Skip to content

Commit 1ff1a4f

Browse files
committed
support es module
1 parent c198d1d commit 1ff1a4f

File tree

7 files changed

+267
-184
lines changed

7 files changed

+267
-184
lines changed

.babelrc

+30-5
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,40 @@
1010
}
1111
]
1212
],
13+
"transform-runtime"
1314
],
14-
"presets": [
15-
"es2015",
16-
"react",
17-
"stage-0",
18-
],
1915
"env": {
2016
"development": {
2117
"sourceMaps" : "inline",
18+
"presets": [
19+
["env", {
20+
"targets": {
21+
"browsers": ["last 2 versions", "ie >= 9"]
22+
}
23+
}],
24+
"react",
25+
],
26+
},
27+
"commonjs": {
28+
"presets": [
29+
["env", {
30+
"targets": {
31+
"browsers": ["last 2 versions", "ie >= 9"]
32+
}
33+
}],
34+
"react",
35+
],
36+
},
37+
"es": {
38+
"presets": [
39+
["env", {
40+
"targets": {
41+
"browsers": ["last 2 versions", "ie >= 9"]
42+
},
43+
"modules": false
44+
}],
45+
"react",
46+
],
2247
},
2348
}
2449
}

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,5 @@ npm-debug.*
66
lib/
77
coverage/
88
storybook-static
9+
es/
10+
css/

README.md

+8-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ To develop fast, some code and file maybe come from antd, thank to the great pro
1111
Example: https://wangtao0101.github.io/react-virtualized-transfer/
1212

1313
## Break Change
14-
use css.js and less.js to help import css or less !!
14+
use css.js and less.js to help import css or less !!
15+
support es version !!
1516

1617
## Motivation
1718
We should handle more than 10 thousands of data, but the transfer component in antd is very slow when the number comes to 1000
@@ -30,12 +31,18 @@ yarn add react-virtualized-transfer
3031
Use css version
3132
```
3233
import Transfer from 'react-virtualized-transfer';
34+
3335
require('react-virtualized-transfer/lib/css')
36+
// or
37+
require('react-virtualized-transfer/es/css')
3438
```
3539
Use less version, then you can [modify less variable](https://ant.design/docs/react/customize-theme-cn)
3640
```
3741
import Transfer from 'react-virtualized-transfer';
42+
3843
require('react-virtualized-transfer/lib/less')
44+
// or
45+
require('react-virtualized-transfer/es/less')
3946
```
4047

4148
## API (not support means antd support but react-virtualized-transfer not support)

package.json

+12-10
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"version": "1.1.0",
44
"description": "react-virtualized-transfer",
55
"main": "lib/index.js",
6+
"module": "es/index.js",
67
"scripts": {
78
"lint": "eslint src/*.js src/test/*.js",
89
"test": "jest",
@@ -11,10 +12,12 @@
1112
"storybook": "start-storybook -p 6006",
1213
"build-storybook": "build-storybook",
1314
"build:css": "node ./scripts/buildless.js",
14-
"less": "node node_modules/.bin/lessc --npm-import='prefix=~' src/transfer.less > lib/transfer.css",
15-
"clean": "npm run clean:commonjs && npm run clean:demo && npm run clean:es && npm run clean:umd",
15+
"clean": "rimraf lib && rimraf es",
16+
"less": "node node_modules/.bin/lessc --npm-import='prefix=~' src/transfer.less > css/transfer.css",
1617
"deploy": "gh-pages -d storybook-static",
17-
"build": "cross-env NODE_ENV=production babel src -d lib --ignore test && npm run build:css && copyfiles -f src/transfer.less lib"
18+
"build": "npm run clean && npm run build:css && npm run build:commonjs && npm run build:es",
19+
"build:commonjs": "cross-env NODE_ENV=production BABEL_ENV=commonjs babel src -d lib --ignore test && copyfiles -f src/transfer.less lib",
20+
"build:es": "cross-env NODE_ENV=production BABEL_ENV=es babel src -d es --ignore test && copyfiles -f src/transfer.less es"
1821
},
1922
"repository": {
2023
"type": "git",
@@ -32,6 +35,9 @@
3235
},
3336
"homepage": "https://github.com/wangtao0101/react-virtualized-transfer#readme",
3437
"dependencies": {
38+
"babel-plugin-transform-runtime": "^6.23.0",
39+
"babel-preset-env": "1.6.1",
40+
"babel-preset-es2015-rollup": "^3.0.0",
3541
"classnames": "^2.2.5",
3642
"invariant": "^2.2.2",
3743
"lodash": "^4.17.4",
@@ -51,14 +57,9 @@
5157
"babel-loader": "^6.4.1",
5258
"babel-plugin-import": "^1.1.1",
5359
"babel-plugin-lodash": "^3.2.11",
54-
"babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
55-
"babel-polyfill": "^6.23.0",
56-
"babel-preset-es2015": "^6.24.0",
57-
"babel-preset-es2016": "^6.24.1",
5860
"babel-preset-react": "^6.24.1",
59-
"babel-preset-stage-0": "^6.22.0",
6061
"copyfiles": "^1.2.0",
61-
"cross-env": "^4.0.0",
62+
"cross-env": "^5.1.1",
6263
"css-loader": "^0.26.4",
6364
"enzyme": "^2.8.2",
6465
"eslint": "^3.19.0",
@@ -81,10 +82,11 @@
8182
"react-test-renderer": "^15.5.4",
8283
"redux": "^3.6.0",
8384
"redux-saga": "^0.14.5",
85+
"rimraf": "^2.6.2",
8486
"webpack": "^1.12.0"
8587
},
8688
"peerDependencies": {
87-
"antd": "^2.x",
89+
"antd": "^2.x || ^3.x",
8890
"react": "^15.3.0 || ^16.0.0-alpha",
8991
"react-dom": "^15.3.0 || ^16.0.0-alpha"
9092
},

scripts/buildless.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,13 @@ const path = require('path');
66
const options = { plugins: [new NpmImportPlugin({ prefix: '~' })] };
77

88
if (fs.existsSync(path.join(__dirname, '../src/transfer.less'))) {
9+
if (!fs.existsSync(path.join(process.cwd(), 'css'))) {
10+
fs.mkdir(path.join(process.cwd(), 'css'));
11+
}
912
const lessFile = fs.readFileSync(path.join(__dirname, '../src/transfer.less')).toString();
1013
less.render(lessFile, options)
1114
.then((output) => {
12-
fs.writeFileSync(path.join(process.cwd(), 'lib', 'transfer.css'), output.css);
15+
fs.writeFileSync(path.join(process.cwd(), 'css', 'transfer.css'), output.css);
1316
})
1417
.catch((err) => {
1518
// eslint-disable-next-line

src/css.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ import 'antd/lib/checkbox/style/index.css';
22
import 'antd/lib/button/style/index.css';
33
import 'antd/lib/icon/style/css';
44
import 'antd/lib/input/style/index.css';
5-
import './transfer.css'; // eslint-disable-line
5+
import './../css/transfer.css'; // eslint-disable-line

0 commit comments

Comments
 (0)