@@ -7,6 +7,7 @@ const { nsReplaceBootstrap } = require("nativescript-dev-webpack/transformers/ns
77const { nsReplaceLazyLoader } = require ( "nativescript-dev-webpack/transformers/ns-replace-lazy-loader" ) ;
88const { nsSupportHmrNg } = require ( "nativescript-dev-webpack/transformers/ns-support-hmr-ng" ) ;
99const { getMainModulePath } = require ( "nativescript-dev-webpack/utils/ast-utils" ) ;
10+ const { getNoEmitOnErrorFromTSConfig } = require ( "nativescript-dev-webpack/utils/tsconfig-utils" ) ;
1011const CleanWebpackPlugin = require ( "clean-webpack-plugin" ) ;
1112const CopyWebpackPlugin = require ( "copy-webpack-plugin" ) ;
1213const { BundleAnalyzerPlugin } = require ( "webpack-bundle-analyzer" ) ;
@@ -51,11 +52,26 @@ module.exports = env => {
5152 hmr, // --env.hmr,
5253 unitTesting, // --env.unitTesting
5354 verbose, // --env.verbose
55+ snapshotInDocker, // --env.snapshotInDocker
56+ skipSnapshotTools, // --env.skipSnapshotTools
57+ compileSnapshot // --env.compileSnapshot
5458 } = env ;
5559
60+ const useLibs = compileSnapshot ;
5661 const isAnySourceMapEnabled = ! ! sourceMap || ! ! hiddenSourceMap ;
5762 const externals = nsWebpack . getConvertedExternals ( env . externals ) ;
5863 const appFullPath = resolve ( projectRoot , appPath ) ;
64+ const hasRootLevelScopedModules = nsWebpack . hasRootLevelScopedModules ( { projectDir : projectRoot } ) ;
65+ let coreModulesPackageName = "tns-core-modules" ;
66+ const alias = {
67+ '~' : appFullPath
68+ } ;
69+
70+ if ( hasRootLevelScopedModules ) {
71+ coreModulesPackageName = "@nativescript/core" ;
72+ alias [ "tns-core-modules" ] = coreModulesPackageName ;
73+ alias [ "nativescript-angular" ] = "@nativescript/angular" ;
74+ }
5975 const appResourcesFullPath = resolve ( projectRoot , appResourcesPath ) ;
6076 const tsConfigName = "tsconfig.tns.json" ;
6177 const entryModule = `${ nsWebpack . getEntryModule ( appFullPath , platform ) } .ts` ;
@@ -108,6 +124,8 @@ module.exports = env => {
108124 itemsToClean . push ( `${ join ( projectRoot , "platforms" , "android" , "app" , "build" , "configurations" , "nativescript-android-snapshot" ) } ` ) ;
109125 }
110126
127+ const noEmitOnErrorFromTSConfig = getNoEmitOnErrorFromTSConfig ( join ( projectRoot , tsConfigName ) ) ;
128+
111129 nsWebpack . processAppComponents ( appComponents , platform ) ;
112130 const config = {
113131 mode : production ? "production" : "development" ,
@@ -135,14 +153,12 @@ module.exports = env => {
135153 extensions : [ ".ts" , ".js" , ".scss" , ".css" ] ,
136154 // Resolve {N} system modules from tns-core-modules
137155 modules : [
138- resolve ( __dirname , " node_modules/tns-core-modules" ) ,
156+ resolve ( __dirname , ` node_modules/${ coreModulesPackageName } ` ) ,
139157 resolve ( __dirname , "node_modules" ) ,
140- " node_modules/tns-core-modules" ,
158+ ` node_modules/${ coreModulesPackageName } ` ,
141159 "node_modules" ,
142160 ] ,
143- alias : {
144- '~' : appFullPath
145- } ,
161+ alias,
146162 symlinks : true
147163 } ,
148164 resolveLoader : {
@@ -159,6 +175,7 @@ module.exports = env => {
159175 devtool : hiddenSourceMap ? "hidden-source-map" : ( sourceMap ? "inline-source-map" : "none" ) ,
160176 optimization : {
161177 runtimeChunk : "single" ,
178+ noEmitOnErrors : noEmitOnErrorFromTSConfig ,
162179 splitChunks : {
163180 cacheGroups : {
164181 vendor : {
@@ -221,7 +238,6 @@ module.exports = env => {
221238
222239 { test : / \. h t m l $ | \. x m l $ / , use : "raw-loader" } ,
223240
224- // tns-core-modules reads the app.css and its imports using css-loader
225241 {
226242 test : / [ \/ | \\ ] a p p \. c s s $ / ,
227243 use : [
@@ -269,7 +285,7 @@ module.exports = env => {
269285 // Define useful constants like TNS_WEBPACK
270286 new webpack . DefinePlugin ( {
271287 "global.TNS_WEBPACK" : "true" ,
272- "process" : undefined ,
288+ "process" : "global.process" ,
273289 } ) ,
274290 // Remove all files from the out dir.
275291 new CleanWebpackPlugin ( itemsToClean , { verbose : ! ! verbose } ) ,
@@ -315,6 +331,9 @@ module.exports = env => {
315331 ] ,
316332 projectRoot,
317333 webpackConfig : config ,
334+ snapshotInDocker,
335+ skipSnapshotTools,
336+ useLibs
318337 } ) ) ;
319338 }
320339
@@ -323,4 +342,4 @@ module.exports = env => {
323342 }
324343
325344 return config ;
326- } ;
345+ } ;
0 commit comments