Skip to content
This repository has been archived by the owner on Mar 7, 2024. It is now read-only.

Commit

Permalink
fix: 修复单页应用进首页会加载全部资源文件
Browse files Browse the repository at this point in the history
* fix: 修复单页应用进首页会加载全部资源文件

* fix: 修改测试项

* fix: 修复public/index.html无效问题

* fix: 修复缺少括号语法错误

* fix: 测试项增加prefetch

Co-authored-by: juvham <juvham@foxmail.com>
  • Loading branch information
juvham and juvham authored Nov 27, 2020
1 parent 6c92ff7 commit bb4a0f5
Show file tree
Hide file tree
Showing 8 changed files with 52 additions and 17 deletions.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 9 additions & 1 deletion packages/remax-cli/src/build/entries/SpaEntry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,15 @@ export default class SpaEntry extends VirtualEntry {
)},
pageComponents: [
${Array.from(this.builder.entryCollection.entries.values())
.map(entry => `import(/* webpackChunkName: "${entry.name}" */'${entry.filename}')`)
.map(
entry => `function() {
return import(
/* webpackPrefetch: true */
/* webpackChunkName: "${entry.name}" */
'${entry.filename}'
)
}`
)
.join(',')}
],
plugins: [
Expand Down
5 changes: 4 additions & 1 deletion packages/remax-cli/src/build/webpack/config.web.mpa.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import * as path from 'path';
import * as fs from 'fs';
import * as webpack from 'webpack';
import Config from 'webpack-chain';
import HtmlWebpackPlugin from 'html-webpack-plugin';
Expand All @@ -20,7 +21,9 @@ export default function webpackConfig(builder: Builder): webpack.Configuration {
{
filename: entry.name + '.html',
chunks: [entry.name],
template: path.resolve(__dirname, '../../../template/index.html.ejs'),
template: fs.existsSync(path.join(builder.projectPath.publicDir(), '/index.html'))
? path.join(builder.projectPath.publicDir(), '/index.html')
: path.resolve(__dirname, '../../../template/index.html.ejs'),
env: process.env.NODE_ENV,
},
]);
Expand Down
5 changes: 4 additions & 1 deletion packages/remax-cli/src/build/webpack/config.web.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import * as path from 'path';
import * as fs from 'fs';
import * as webpack from 'webpack';
import Config from 'webpack-chain';
import HtmlWebpackPlugin from 'html-webpack-plugin';
Expand Down Expand Up @@ -32,7 +33,9 @@ export default function webpackConfig(builder: Builder): webpack.Configuration {

config.plugin('html-webpack-plugin').use(HtmlWebpackPlugin, [
{
template: path.resolve(__dirname, '../../../template/index.html.ejs'),
template: fs.existsSync(path.join(builder.projectPath.publicDir(), '/index.html'))
? path.join(builder.projectPath.publicDir(), '/index.html')
: path.resolve(__dirname, '../../../template/index.html.ejs'),
env: process.env.NODE_ENV,
},
]);
Expand Down
10 changes: 5 additions & 5 deletions packages/remax-web/src/__tests__/createApp.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ describe('createApp', () => {
appConfig: {
pages: ['pages/foo'],
},
pageComponents: [createPage('foo'), createPage('bar')],
pageComponents: [() => createPage('foo'), () => createPage('bar')],
pages: [
{
route: 'pages/foo',
Expand Down Expand Up @@ -51,7 +51,7 @@ describe('createApp', () => {
defaultTitle: 'remax',
},
},
pageComponents: [createPage('index')],
pageComponents: [() => createPage('index')],
pages: [
{
route: 'pages/index',
Expand All @@ -77,7 +77,7 @@ describe('createApp', () => {
defaultTitle: 'remax',
},
},
pageComponents: [createPage('index')],
pageComponents: [() => createPage('index')],
pages: [
{
route: 'pages/index',
Expand Down Expand Up @@ -120,7 +120,7 @@ describe('createApp', () => {
],
},
},
pageComponents: [createPage('foo'), createPage('bar')],
pageComponents: [() => createPage('foo'), () => createPage('bar')],
pages: [
{
route: 'pages/foo',
Expand Down Expand Up @@ -149,7 +149,7 @@ describe('createApp', () => {
appConfig: {
pages: ['pages/index'],
},
pageComponents: [createPage('index')],
pageComponents: [() => createPage('index')],
pages: [
{
route: 'pages/index',
Expand Down
4 changes: 2 additions & 2 deletions packages/remax-web/src/createApp.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@ export default function createApp(options: BootstrapOptions, history: History) {
{(props: any) => {
const pageComponent = async
? loadable<any>(() =>
(pageComponents[i] as Promise<{ default: React.ComponentType }>).then(({ default: c }) =>
(pageComponents[i]() as Promise<{ default: React.ComponentType }>).then(({ default: c }) =>
createPageConfig(c, page.route)
)
)
: createPageConfig(pageComponents[i] as React.ComponentType, page.route);
: createPageConfig(pageComponents[i]() as React.ComponentType, page.route);
return React.createElement(pageComponent, {
...props,
pageConfig: {
Expand Down
2 changes: 1 addition & 1 deletion packages/remax-web/src/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export interface BootstrapOptions {
appComponent: React.ComponentType;
appConfig: AppConfig;
plugins?: any[];
pageComponents: Array<Promise<{ default: React.ComponentType }> | React.ComponentType>;
pageComponents: Array<() => Promise<{ default: React.ComponentType }> | React.ComponentType>;
pages: Page[];
}

Expand Down

1 comment on commit bb4a0f5

@vercel
Copy link

@vercel vercel bot commented on bb4a0f5 Nov 27, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.