1- const sources = require ( "webpack-sources" ) ;
2- const fs = require ( "fs" ) ;
31const path = require ( "path" ) ;
2+ const { existsSync } = require ( "fs" ) ;
43
5- const { isAngular, getPackageJson } = require ( "./projectHelpers" ) ;
4+ const { getPackageJson, isAngular } = require ( "./projectHelpers" ) ;
5+ const { sanitize } = require ( "./utils" ) ;
66
77const PROJECT_DIR = path . dirname ( path . dirname ( __dirname ) ) ;
88const APP_DIR = path . join ( PROJECT_DIR , "app" ) ;
99
10- if ( isAngular ( PROJECT_DIR ) ) {
11- exports . UrlResolvePlugin = require ( "./resource-resolver-plugins/UrlResolvePlugin" ) ;
12- }
13-
14- //HACK: changes the JSONP chunk eval function to `global["nativescriptJsonp"]`
15- // applied to tns-java-classes.js only
16- exports . NativeScriptJsonpPlugin = function ( ) {
17- } ;
18-
19- exports . NativeScriptJsonpPlugin . prototype . apply = function ( compiler ) {
20- compiler . plugin ( "compilation" , function ( compilation ) {
21- compilation . plugin ( "optimize-chunk-assets" , function ( chunks , callback ) {
22- chunks . forEach ( function ( chunk ) {
23- chunk . files . forEach ( function ( file ) {
24- if ( file === "vendor.js" ) {
25- const src = compilation . assets [ file ] ;
26- const code = src . source ( ) ;
27- const match = code . match ( / w i n d o w \[ " n a t i v e s c r i p t J s o n p " \] / ) ;
28- if ( match ) {
29- compilation . assets [ file ] = new sources . ConcatSource ( code . replace ( / w i n d o w \[ " n a t i v e s c r i p t J s o n p " \] / g, "global[\"nativescriptJsonp\"]" ) ) ;
30- }
31- }
32- } ) ;
33- } ) ;
34- callback ( ) ;
35- } ) ;
36- } ) ;
37- } ;
38-
39- exports . GenerateBundleStarterPlugin = function ( bundles ) {
40- this . bundles = bundles ;
41- } ;
42-
43- exports . GenerateBundleStarterPlugin . prototype = {
44- apply : function ( compiler ) {
45- const plugin = this ;
46- plugin . webpackContext = compiler . options . context ;
47-
48- compiler . plugin ( "emit" , function ( compilation , cb ) {
49- compilation . assets [ "package.json" ] = plugin . generatePackageJson ( ) ;
50- compilation . assets [ "starter.js" ] = plugin . generateStarterModule ( ) ;
51- plugin . generateTnsJavaClasses ( compilation ) ;
10+ Object . assign ( exports , require ( './plugins' ) . commonPlugins ) ;
5211
53- cb ( ) ;
54- } ) ;
55- } ,
56- generateTnsJavaClasses : function ( compilation ) {
57- const path = compilation . compiler . outputPath ;
58- const isAndroid = path . indexOf ( "android" ) > - 1 ;
59-
60- if ( isAndroid && ! compilation . assets [ "tns-java-classes.js" ] ) {
61- compilation . assets [ "tns-java-classes.js" ] = new sources . RawSource ( "" ) ;
62- }
63- } ,
64- generatePackageJson : function ( ) {
65- const packageJson = getPackageJson ( this . webpackContext ) ;
66- packageJson . main = "starter" ;
67-
68- return new sources . RawSource ( JSON . stringify ( packageJson , null , 4 ) ) ;
69- } ,
70- generateStarterModule : function ( ) {
71- const moduleSource = this . bundles
72- . map ( bundle => `require("${ bundle } ")` )
73- . join ( "\n" ) ;
12+ if ( isAngular ( { projectDir : PROJECT_DIR } ) ) {
13+ Object . assign ( exports , require ( './plugins' ) . angularPlugins ) ;
14+ }
7415
75- return new sources . RawSource ( moduleSource ) ;
76- } ,
77- } ;
16+ exports . uglifyMangleExcludes = require ( "./mangle-excludes" ) ;
7817
7918exports . getEntryModule = function ( ) {
8019 const maybePackageJsonEntry = getPackageJsonEntry ( ) ;
@@ -87,8 +26,6 @@ exports.getEntryModule = function () {
8726} ;
8827
8928exports . getAppPath = platform => {
90- var projectDir = path . dirname ( path . dirname ( __dirname ) ) ;
91-
9229 if ( / i o s / i. test ( platform ) ) {
9330 const appName = path . basename ( PROJECT_DIR ) ;
9431 const sanitizedName = sanitize ( appName ) ;
@@ -101,8 +38,6 @@ exports.getAppPath = platform => {
10138 }
10239} ;
10340
104- exports . uglifyMangleExcludes = require ( "./mangle-excludes" ) ;
105-
10641function getPackageJsonEntry ( ) {
10742 const packageJsonSource = getPackageJson ( APP_DIR ) ;
10843 const entry = packageJsonSource . main ;
@@ -114,6 +49,6 @@ function getAotEntry(entry) {
11449 const aotEntry = `${ entry } .aot.ts` ;
11550 const aotEntryPath = path . join ( APP_DIR , aotEntry ) ;
11651
117- return fs . existsSync ( aotEntryPath ) ? aotEntry : null ;
52+ return existsSync ( aotEntryPath ) ? aotEntry : null ;
11853}
11954
0 commit comments