From e996358a74ad8bc4d9357ab7f1b87f7de5dabb03 Mon Sep 17 00:00:00 2001
From: Pavlo Glazkov
Date: Tue, 18 Apr 2017 07:41:54 +0200
Subject: [PATCH 1/2] feat: support webpack 2.4 chunk name annotation for
import()
---
src/builtin_codegens.ts | 6 ++++--
test/test.spec.ts | 11 +++++++++++
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/src/builtin_codegens.ts b/src/builtin_codegens.ts
index 9cf0f3c..18f9a20 100644
--- a/src/builtin_codegens.ts
+++ b/src/builtin_codegens.ts
@@ -43,9 +43,11 @@ systemCodeGen['deprecated'] = () => {
systemCodeGen['deprecated'] = () => {};
};
-export const importCodeGen: LoaderCodeGen = (file: string, module: string, opts: RouterLoaderOptions) => {
+export const importCodeGen: LoaderCodeGen = (file: string, module: string, opts: RouterLoaderOptions, resourceOptions: RouteResourceOptions) => {
+ const webpackChunkName = resourceOptions.chunkName ? ` /* webpackChunkName: "${resourceOptions.chunkName}" */` : '';
+
const result = [
- `function importCodeGen() { return import_('${file}')`,
+ `function importCodeGen() { return import_('${file}'${webpackChunkName})`,
` .then( function(module) { return module['${module}']; } ); }`
];
diff --git a/test/test.spec.ts b/test/test.spec.ts
index 9408ef5..3f21a8b 100644
--- a/test/test.spec.ts
+++ b/test/test.spec.ts
@@ -419,6 +419,17 @@ describe('Loader', () => {
});
});
+ it('should output async-import codegen with chunk name', () => {
+ const loader = factory
+ .setOption('loader', 'async-import')
+ .toLoader();
+
+ return loader.replace(genCode('app/module-container/child-module#ChildModule?chunkName=foo'))
+ .then(mapToZero)
+ .then( (result: ReplaceResult) => {
+ expect(result.replacement).to.eql(`function() { return import('${cwdJoin('src/app/module-container/child-module/index')}' /* webpackChunkName: "foo" */) .then( function(module) { return module['ChildModule']; } ); }`);
+ });
+ });
it('should output a custom codegen', () => {
const loader = factory.toLoader();
From 60d63db1fc3beacb780cc12e02e84a339bc6273e Mon Sep 17 00:00:00 2001
From: Pavlo Glazkov
Date: Tue, 30 May 2017 17:05:06 +0200
Subject: [PATCH 2/2] fix: false positive "loadChildren" regular expression
match
---
src/Loader.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Loader.ts b/src/Loader.ts
index cce336d..66f7ab4 100644
--- a/src/Loader.ts
+++ b/src/Loader.ts
@@ -45,7 +45,7 @@ export type LoaderCodeGen = Function & (
| ( (file: string, module: string, loaderOptions: RouterLoaderOptions, resourceOptions: RouteResourceOptions) => string )
)
-const LOAD_CHILDREN_RE = /loadChildren[\s]*:[\s]*['|"].+?['|"]/;
+const LOAD_CHILDREN_RE = /loadChildren[\s]*:[\s]*['|"].*#{1}.*['|"]/;
export class Loader {
public query: RouterLoaderOptions;