Skip to content

Commit 8ff6c14

Browse files
author
Dominique Busser
committed
5 - Dynamic import
1 parent 60cec7b commit 8ff6c14

File tree

5 files changed

+66
-4
lines changed

5 files changed

+66
-4
lines changed

.babelrc

+4
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,9 @@
22
"presets": [
33
"@babel/preset-env",
44
"@babel/preset-react"
5+
],
6+
"plugins": [
7+
"@babel/plugin-syntax-dynamic-import",
8+
"@babel/plugin-transform-runtime"
59
]
610
}

package.json

+5-2
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@
66
"scripts": {
77
"build": "webpack --mode production",
88
"build:dev": "webpack --mode development",
9-
"dev": "webpack-dev-server --mode development --open"
9+
"dev": "webpack-dev-server -d --open"
1010
},
1111
"author": "",
1212
"license": "ISC",
1313
"devDependencies": {
1414
"@babel/core": "^7.0.0",
15+
"@babel/plugin-syntax-dynamic-import": "^7.0.0",
16+
"@babel/plugin-transform-runtime": "^7.0.0",
1517
"@babel/preset-env": "^7.0.0",
1618
"@babel/preset-react": "^7.0.0",
1719
"babel-loader": "^8.0.2",
@@ -22,7 +24,8 @@
2224
"webpack-dev-server": "^3.1.8"
2325
},
2426
"dependencies": {
27+
"@babel/runtime": "^7.0.0",
2528
"react": "^16.5.0",
2629
"react-dom": "^16.5.0"
2730
}
28-
}
31+
}

src/Name.js

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import React, { Component } from 'react';
2+
3+
export class Name extends Component {
4+
render() {
5+
return (
6+
<span style={{ color: 'red', fontSize: '20px' }}>{this.props.name}</span>
7+
);
8+
}
9+
}

src/hello.js

+23-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,29 @@
11
import React, { Component } from 'react';
22

33
export class Hello extends Component {
4+
constructor() {
5+
super();
6+
this.state = {
7+
Name: null
8+
};
9+
}
10+
11+
async componentDidMount() {
12+
const { Name } = await import('./Name');
13+
this.setState({ Name });
14+
}
15+
416
render() {
5-
return <div>Hello, {this.props.name}</div>;
17+
const { Name } = this.state;
18+
19+
if (Name === null) {
20+
return null;
21+
}
22+
23+
return (
24+
<div>
25+
Hello, <Name name={this.props.name} />
26+
</div>
27+
);
628
}
729
}

yarn.lock

+25-1
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,12 @@
243243
dependencies:
244244
"@babel/helper-plugin-utils" "^7.0.0"
245245

246+
"@babel/plugin-syntax-dynamic-import@^7.0.0":
247+
version "7.0.0"
248+
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.0.0.tgz#6dfb7d8b6c3be14ce952962f658f3b7eb54c33ee"
249+
dependencies:
250+
"@babel/helper-plugin-utils" "^7.0.0"
251+
246252
"@babel/plugin-syntax-json-strings@^7.0.0":
247253
version "7.0.0"
248254
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.0.0.tgz#0d259a68090e15b383ce3710e01d5b23f3770cbd"
@@ -443,6 +449,14 @@
443449
dependencies:
444450
regenerator-transform "^0.13.3"
445451

452+
"@babel/plugin-transform-runtime@^7.0.0":
453+
version "7.0.0"
454+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.0.0.tgz#0f1443c07bac16dba8efa939e0c61d6922740062"
455+
dependencies:
456+
"@babel/helper-module-imports" "^7.0.0"
457+
"@babel/helper-plugin-utils" "^7.0.0"
458+
resolve "^1.8.1"
459+
446460
"@babel/plugin-transform-shorthand-properties@^7.0.0":
447461
version "7.0.0"
448462
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0.tgz#85f8af592dcc07647541a0350e8c95c7bf419d15"
@@ -539,6 +553,12 @@
539553
"@babel/plugin-transform-react-jsx-self" "^7.0.0"
540554
"@babel/plugin-transform-react-jsx-source" "^7.0.0"
541555

556+
"@babel/runtime@^7.0.0":
557+
version "7.0.0"
558+
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0.tgz#adeb78fedfc855aa05bc041640f3f6f98e85424c"
559+
dependencies:
560+
regenerator-runtime "^0.12.0"
561+
542562
"@babel/template@^7.0.0":
543563
version "7.0.0"
544564
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0.tgz#c2bc9870405959c89a9c814376a2ecb247838c80"
@@ -3468,6 +3488,10 @@ regenerate@^1.4.0:
34683488
version "1.4.0"
34693489
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
34703490

3491+
regenerator-runtime@^0.12.0:
3492+
version "0.12.1"
3493+
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de"
3494+
34713495
regenerator-transform@^0.13.3:
34723496
version "0.13.3"
34733497
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb"
@@ -3554,7 +3578,7 @@ resolve-url@^0.2.1:
35543578
version "0.2.1"
35553579
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
35563580

3557-
resolve@^1.3.2:
3581+
resolve@^1.3.2, resolve@^1.8.1:
35583582
version "1.8.1"
35593583
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26"
35603584
dependencies:

0 commit comments

Comments
 (0)