Skip to content

Commit f119305

Browse files
committed
feat: replace webpack with rollup
1 parent cdbcd47 commit f119305

12 files changed

+297
-121
lines changed

.eslintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
node_modules/
22
dist/
3+
lib/
34
coverage/
45
.vscode/
56
.nyc_output/

.gitignore

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
dist/
21
node_modules/
32

43
yarn-error.log
@@ -17,3 +16,10 @@ docs/h5/
1716
coverage
1817

1918
.idea
19+
20+
# taro-ui outputs
21+
lib/
22+
dist/
23+
24+
# rollup visualizer file
25+
stats.html

config/rollup.config.analyze.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import RollupVisualizer from 'rollup-plugin-visualizer'
2+
import defaultConfig from './rollup.config'
3+
4+
export default Object.assign({}, defaultConfig, {
5+
plugins: [...defaultConfig.plugins, RollupVisualizer()]
6+
})

config/rollup.config.js

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import NodePath from 'path'
2+
import RollupJson from '@rollup/plugin-json'
3+
import RollupNodeResolve from '@rollup/plugin-node-resolve'
4+
import RollupCommonjs from '@rollup/plugin-commonjs'
5+
import RollupTypescript from 'rollup-plugin-typescript2'
6+
import Package from '../package.json'
7+
8+
const resolveFile = path => NodePath.resolve(__dirname, '..', path)
9+
10+
const externalPackages = [
11+
'react',
12+
'react-dom',
13+
'@tarojs/components',
14+
'@tarojs/runtime',
15+
'@tarojs/taro',
16+
'@tarojs/react'
17+
]
18+
19+
export default {
20+
input: resolveFile(Package.source),
21+
output: [
22+
{
23+
file: resolveFile(Package.main),
24+
format: 'cjs',
25+
sourcemap: true
26+
},
27+
{
28+
file: resolveFile(Package.module),
29+
format: 'es',
30+
sourcemap: true
31+
},
32+
{
33+
file: resolveFile(Package.browser),
34+
format: 'umd',
35+
name: 'taro-ui',
36+
sourcemap: true,
37+
globals: {
38+
react: 'React',
39+
'@tarojs/components': 'components',
40+
'@tarojs/taro': 'Taro'
41+
}
42+
}
43+
],
44+
external: externalPackages,
45+
plugins: [
46+
RollupNodeResolve({
47+
customResolveOptions: {
48+
moduleDirectory: 'node_modules'
49+
}
50+
}),
51+
RollupCommonjs({
52+
include: /\/node_modules\//
53+
}),
54+
RollupJson(),
55+
RollupTypescript({
56+
tsconfig: NodePath.resolve(__dirname, 'tsconfig.rollup.json')
57+
})
58+
]
59+
}
File renamed without changes.

tsconfig.build.json renamed to config/tsconfig.build.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44
"skipLibCheck": true,
55
"target": "es2017",
66
"module": "es6",
7-
"baseUrl": ".",
8-
"outDir": "./dist/es"
7+
"baseUrl": "../",
8+
"outDir": "../lib"
99
},
1010
"include": [
11-
"src/common/*",
12-
"src/components/*",
13-
"src/index.ts"
11+
"../src/common/*",
12+
"../src/components/*",
13+
"../src/index.ts"
1414
],
1515
"exclude": [
16-
"node_modules"
16+
"../node_modules/*"
1717
]
1818
}

config/tsconfig.rollup.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"extends": "./tsconfig.base",
3+
"compilerOptions": {
4+
"skipLibCheck": true,
5+
"target": "es5",
6+
"module": "es6",
7+
"downlevelIteration": true,
8+
"baseUrl": "../",
9+
"types": ["node"]
10+
},
11+
"include": [
12+
"../src/common/*",
13+
"../src/components/*",
14+
"../src/index.ts"
15+
],
16+
"exclude": [
17+
"../node_modules/*"
18+
]
19+
}

config/webpack.analyze.js

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

config/webpack.config.js

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

package.json

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22
"name": "taro-ui",
33
"version": "3.0.0-alpha.0",
44
"description": "UI KIT for Taro",
5-
"module": "dist/es/index.js",
5+
"browser": "dist/index.umd.js",
6+
"module": "dist/index.esm.js",
67
"main": "dist/index.js",
8+
"source": "src/index.ts",
79
"sideEffects": [
810
"*.scss",
911
"*.css"
@@ -15,6 +17,7 @@
1517
"ui"
1618
],
1719
"files": [
20+
"lib",
1821
"dist",
1922
"types"
2023
],
@@ -197,31 +200,31 @@
197200
]
198201
},
199202
"scripts": {
200-
"dev:weapp": "npm run build:weapp -- --watch",
201-
"dev:qq": "npm run build:qq -- --watch",
202-
"dev:h5": "npm run build:h5 -- --watch",
203-
"dev:swan": "npm run build:swan -- --watch",
204-
"dev:alipay": "npm run build:alipay -- --watch",
205-
"dev:doc": "npm run build:h5-static && node ./build/dev-server",
203+
"dev:weapp": "yarn run build:weapp -- --watch",
204+
"dev:qq": "yarn run build:qq -- --watch",
205+
"dev:h5": "yarn run build:h5 -- --watch",
206+
"dev:swan": "yarn run build:swan -- --watch",
207+
"dev:alipay": "yarn run build:alipay -- --watch",
208+
"dev:doc": "yarn run build:h5-static && node ./build/dev-server",
206209
"build:weapp": "taro build --type weapp",
207210
"build:qq": "taro build --type qq",
208211
"build:h5": "taro build --type h5",
209212
"build:swan": "taro build --type swan",
210213
"build:alipay": "taro build --type alipay",
211-
"build:esmodule": "tsc --project tsconfig.build.json",
212-
"build:webpack": "webpack --config ./config/webpack.config.js",
213-
"build:component": "npm run build:webpack && npm run build:esmodule",
214-
"build:h5-static": "npm run build:h5 && node ./build/build-static",
215-
"build:doc": "npm run build:h5-static && node ./build/build-docs",
216-
"prepublishOnly": "npm run clean && npm run build:component",
214+
"build:lib": "tsc --project ./config/tsconfig.build.json",
215+
"build:rollup": "rollup --config ./config/rollup.config.js",
216+
"build:component": "yarn run build:rollup && yarn run build:lib",
217+
"build:h5-static": "yarn run build:h5 && node ./build/build-static",
218+
"build:doc": "yarn run build:h5-static && node ./build/build-docs",
219+
"prepublishOnly": "yarn run clean && yarn run build:component",
217220
"lint": "eslint ./src --fix",
218221
"lint:style": "stylelint \"src/**/*.scss\" --syntax scss",
219222
"lint:style-fix": "stylelint \"src/**/*.scss\" --syntax scss --fix",
220223
"test": "cross-env NODE_ENV=test && jest --coverage",
221-
"test:ci": "npm run build:h5 && npm run test",
222-
"test:analyze": "webpack --config ./config/webpack.analyze.js",
224+
"test:ci": "yarn run build:h5 && yarn run test",
225+
"test:analyze": "rollup --config ./config/rollup.config.analyze.js",
223226
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
224-
"clean": "rimraf .temp dist coverage"
227+
"clean": "rimraf .temp dist lib coverage"
225228
},
226229
"dependencies": {
227230
"classnames": "^2.2.6",
@@ -240,6 +243,9 @@
240243
"@commitlint/cli": "^8.2.0",
241244
"@commitlint/config-conventional": "^8.2.0",
242245
"@mapbox/jsxtreme-markdown-loader": "^0.8.3",
246+
"@rollup/plugin-commonjs": "^11.0.2",
247+
"@rollup/plugin-json": "^4.0.2",
248+
"@rollup/plugin-node-resolve": "^7.1.1",
243249
"@tarojs/cli": "^3.0.0-beta.1",
244250
"@tarojs/components": "^3.0.0-beta.1",
245251
"@tarojs/mini-runner": "^3.0.0-beta.1",
@@ -318,6 +324,9 @@
318324
"react-router-dom": "^5.1.2",
319325
"regenerator-runtime": "^0.13.3",
320326
"rimraf": "^3.0.2",
327+
"rollup": "^2.3.1",
328+
"rollup-plugin-typescript2": "^0.27.0",
329+
"rollup-plugin-visualizer": "^4.0.2",
321330
"sass-loader": "^8.0.0",
322331
"simulant": "^0.2.2",
323332
"source-map-loader": "^0.2.4",

0 commit comments

Comments
 (0)