@@ -17,7 +17,7 @@ if (isAngular) {
17
17
18
18
//HACK: changes the JSONP chunk eval function to `global["nativescriptJsonp"]`
19
19
// applied to tns-java-classes.js only
20
- exports . NativeScriptJsonpPlugin = function ( options ) {
20
+ exports . NativeScriptJsonpPlugin = function ( options ) {
21
21
} ;
22
22
23
23
exports . NativeScriptJsonpPlugin . prototype . apply = function ( compiler ) {
@@ -40,7 +40,42 @@ exports.NativeScriptJsonpPlugin.prototype.apply = function (compiler) {
40
40
} ) ;
41
41
} ;
42
42
43
- exports . GenerateBundleStarterPlugin = function ( bundles ) {
43
+ exports . ExcludeUnusedElementsPlugin = function ( ) {
44
+ } ;
45
+
46
+ exports . ExcludeUnusedElementsPlugin . prototype . apply = function ( compiler ) {
47
+ compiler . plugin ( "normal-module-factory" , function ( nmf ) {
48
+ nmf . plugin ( "before-resolve" , function ( result , callback ) {
49
+ if ( ! result ) {
50
+ return callback ( ) ;
51
+ }
52
+
53
+ if ( result . request === "globals" || result . request === "ui/core/view" ) {
54
+ return callback ( null , result ) ;
55
+ }
56
+
57
+ if ( result . context . indexOf ( "tns-core-modules" ) === - 1 ) {
58
+ if ( result . contextInfo . issuer &&
59
+ result . contextInfo . issuer . indexOf ( "element-registry" ) !== - 1 && global [ "ELEMENT_REGISTRY" ] &&
60
+ ! global [ "ELEMENT_REGISTRY" ] [ result . request ] ) {
61
+ return callback ( ) ;
62
+
63
+ } else {
64
+ return callback ( null , result ) ;
65
+ }
66
+ }
67
+
68
+ if ( result . contextInfo . issuer . indexOf ( "bundle-entry-points" ) !== - 1 && global [ "ELEMENT_REGISTRY" ] &&
69
+ ! global [ "ELEMENT_REGISTRY" ] [ result . request ] ) {
70
+ return callback ( ) ;
71
+ }
72
+
73
+ return callback ( null , result ) ;
74
+ } ) ;
75
+ } ) ;
76
+ } ;
77
+
78
+ exports . GenerateBundleStarterPlugin = function ( bundles ) {
44
79
this . bundles = bundles ;
45
80
} ;
46
81
@@ -58,22 +93,22 @@ exports.GenerateBundleStarterPlugin.prototype = {
58
93
cb ( ) ;
59
94
} ) ;
60
95
} ,
61
- generatePackageJson : function ( ) {
96
+ generatePackageJson : function ( ) {
62
97
var packageJsonPath = path . join ( this . webpackContext , "package.json" ) ;
63
98
var packageData = JSON . parse ( fs . readFileSync ( packageJsonPath , "utf8" ) ) ;
64
99
packageData . main = "starter" ;
65
100
66
101
return new sources . RawSource ( JSON . stringify ( packageData , null , 4 ) ) ;
67
102
} ,
68
- generateStarterModule : function ( ) {
69
- var moduleSource = this . bundles . map ( function ( bundle ) {
103
+ generateStarterModule : function ( ) {
104
+ var moduleSource = this . bundles . map ( function ( bundle ) {
70
105
return "require(\"" + bundle + "\");" ;
71
106
} ) . join ( "\n" ) ;
72
107
return new sources . RawSource ( moduleSource ) ;
73
108
} ,
74
109
} ;
75
110
76
- exports . getEntryModule = function ( ) {
111
+ exports . getEntryModule = function ( ) {
77
112
const maybePackageJsonEntry = getPackageJsonEntry ( ) ;
78
113
if ( ! maybePackageJsonEntry ) {
79
114
throw new Error ( "app/package.json must contain a `main` attribute." ) ;
@@ -83,12 +118,12 @@ exports.getEntryModule = function() {
83
118
return maybeAotEntry || maybePackageJsonEntry ;
84
119
} ;
85
120
86
- exports . getAppPath = function ( platform ) {
121
+ exports . getAppPath = function ( platform ) {
87
122
var projectDir = path . dirname ( path . dirname ( __dirname ) ) ;
88
123
89
124
if ( / i o s / i. test ( platform ) ) {
90
125
var appName = path . basename ( projectDir ) ;
91
- var sanitizedName = appName . split ( "" ) . filter ( function ( c ) {
126
+ var sanitizedName = appName . split ( "" ) . filter ( function ( c ) {
92
127
return / [ a - z A - Z 0 - 9 ] / . test ( c ) ;
93
128
} ) . join ( "" ) ;
94
129
return "platforms/ios/" + sanitizedName + "/app" ;
@@ -127,7 +162,7 @@ function getPackageJsonEntry() {
127
162
const entry = packageJsonSource . main ;
128
163
129
164
return entry ? entry . replace ( / \. j s $ / i, "" ) : null ;
130
- }
165
+ }
131
166
132
167
function getAppPackageJsonSource ( ) {
133
168
const projectDir = getProjectDir ( ) ;
0 commit comments