Skip to content
This repository was archived by the owner on Aug 7, 2021. It is now read-only.

Commit b721acb

Browse files
committed
chore: update demo applications
As the demo applications are with outdated webpack.config files, we should update them to the latest webpack.config
1 parent 97df490 commit b721acb

File tree

3 files changed

+77
-21
lines changed

3 files changed

+77
-21
lines changed

Diff for: demo/AngularApp/webpack.config.js

+27-8
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ const { nsReplaceBootstrap } = require("nativescript-dev-webpack/transformers/ns
77
const { nsReplaceLazyLoader } = require("nativescript-dev-webpack/transformers/ns-replace-lazy-loader");
88
const { nsSupportHmrNg } = require("nativescript-dev-webpack/transformers/ns-support-hmr-ng");
99
const { getMainModulePath } = require("nativescript-dev-webpack/utils/ast-utils");
10+
const { getNoEmitOnErrorFromTSConfig } = require("nativescript-dev-webpack/utils/tsconfig-utils");
1011
const CleanWebpackPlugin = require("clean-webpack-plugin");
1112
const CopyWebpackPlugin = require("copy-webpack-plugin");
1213
const { 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: /\.html$|\.xml$/, use: "raw-loader" },
223240

224-
// tns-core-modules reads the app.css and its imports using css-loader
225241
{
226242
test: /[\/|\\]app\.css$/,
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+
};

Diff for: demo/JavaScriptApp/webpack.config.js

+22-6
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,25 @@ module.exports = env => {
4545
hmr, // --env.hmr,
4646
unitTesting, // --env.unitTesting,
4747
verbose, // --env.verbose
48+
snapshotInDocker, // --env.snapshotInDocker
49+
skipSnapshotTools, // --env.skipSnapshotTools
50+
compileSnapshot // --env.compileSnapshot
4851
} = env;
4952

53+
const useLibs = compileSnapshot;
5054
const isAnySourceMapEnabled = !!sourceMap || !!hiddenSourceMap;
5155
const externals = nsWebpack.getConvertedExternals(env.externals);
5256
const appFullPath = resolve(projectRoot, appPath);
57+
const hasRootLevelScopedModules = nsWebpack.hasRootLevelScopedModules({ projectDir: projectRoot });
58+
let coreModulesPackageName = "tns-core-modules";
59+
const alias = {
60+
'~': appFullPath
61+
};
62+
63+
if (hasRootLevelScopedModules) {
64+
coreModulesPackageName = "@nativescript/core";
65+
alias["tns-core-modules"] = coreModulesPackageName;
66+
}
5367
const appResourcesFullPath = resolve(projectRoot, appResourcesPath);
5468

5569
const entryModule = nsWebpack.getEntryModule(appFullPath, platform);
@@ -95,13 +109,11 @@ module.exports = env => {
95109
extensions: [".js", ".scss", ".css"],
96110
// Resolve {N} system modules from tns-core-modules
97111
modules: [
98-
"node_modules/tns-core-modules",
112+
`node_modules/${coreModulesPackageName}`,
99113
"node_modules",
100114
],
101-
alias: {
102-
'~': appFullPath
103-
},
104-
// don't resolve symlinks to symlinked modules
115+
alias,
116+
// resolve symlinks to symlinked modules
105117
symlinks: true
106118
},
107119
resolveLoader: {
@@ -119,6 +131,7 @@ module.exports = env => {
119131
devtool: hiddenSourceMap ? "hidden-source-map" : (sourceMap ? "inline-source-map" : "none"),
120132
optimization: {
121133
runtimeChunk: "single",
134+
noEmitOnErrors: true,
122135
splitChunks: {
123136
cacheGroups: {
124137
vendor: {
@@ -204,7 +217,7 @@ module.exports = env => {
204217
// Define useful constants like TNS_WEBPACK
205218
new webpack.DefinePlugin({
206219
"global.TNS_WEBPACK": "true",
207-
"process": undefined,
220+
"process": "global.process",
208221
}),
209222
// Remove all files from the out dir.
210223
new CleanWebpackPlugin(itemsToClean, { verbose: !!verbose }),
@@ -247,6 +260,9 @@ module.exports = env => {
247260
],
248261
projectRoot,
249262
webpackConfig: config,
263+
snapshotInDocker,
264+
skipSnapshotTools,
265+
useLibs
250266
}));
251267
}
252268

Diff for: demo/TypeScriptApp/webpack.config.js

+28-7
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ const { join, relative, resolve, sep } = require("path");
33
const webpack = require("webpack");
44
const nsWebpack = require("nativescript-dev-webpack");
55
const nativescriptTarget = require("nativescript-dev-webpack/nativescript-target");
6+
const { getNoEmitOnErrorFromTSConfig } = require("nativescript-dev-webpack/utils/tsconfig-utils");
67
const CleanWebpackPlugin = require("clean-webpack-plugin");
78
const CopyWebpackPlugin = require("copy-webpack-plugin");
89
const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
@@ -46,11 +47,26 @@ module.exports = env => {
4647
hmr, // --env.hmr,
4748
unitTesting, // --env.unitTesting,
4849
verbose, // --env.verbose
50+
snapshotInDocker, // --env.snapshotInDocker
51+
skipSnapshotTools, // --env.skipSnapshotTools
52+
compileSnapshot // --env.compileSnapshot
4953
} = env;
54+
55+
const useLibs = compileSnapshot;
5056
const isAnySourceMapEnabled = !!sourceMap || !!hiddenSourceMap;
5157
const externals = nsWebpack.getConvertedExternals(env.externals);
5258

5359
const appFullPath = resolve(projectRoot, appPath);
60+
const hasRootLevelScopedModules = nsWebpack.hasRootLevelScopedModules({ projectDir: projectRoot });
61+
let coreModulesPackageName = "tns-core-modules";
62+
const alias = {
63+
'~': appFullPath
64+
};
65+
66+
if (hasRootLevelScopedModules) {
67+
coreModulesPackageName = "@nativescript/core";
68+
alias["tns-core-modules"] = coreModulesPackageName;
69+
}
5470
const appResourcesFullPath = resolve(projectRoot, appResourcesPath);
5571

5672
const entryModule = nsWebpack.getEntryModule(appFullPath, platform);
@@ -72,6 +88,8 @@ module.exports = env => {
7288
itemsToClean.push(`${join(projectRoot, "platforms", "android", "app", "build", "configurations", "nativescript-android-snapshot")}`);
7389
}
7490

91+
const noEmitOnErrorFromTSConfig = getNoEmitOnErrorFromTSConfig(tsConfigPath);
92+
7593
nsWebpack.processAppComponents(appComponents, platform);
7694
const config = {
7795
mode: production ? "production" : "development",
@@ -99,14 +117,12 @@ module.exports = env => {
99117
extensions: [".ts", ".js", ".scss", ".css"],
100118
// Resolve {N} system modules from tns-core-modules
101119
modules: [
102-
resolve(__dirname, "node_modules/tns-core-modules"),
120+
resolve(__dirname, `node_modules/${coreModulesPackageName}`),
103121
resolve(__dirname, "node_modules"),
104-
"node_modules/tns-core-modules",
122+
`node_modules/${coreModulesPackageName}`,
105123
"node_modules",
106124
],
107-
alias: {
108-
'~': appFullPath
109-
},
125+
alias,
110126
// resolve symlinks to symlinked modules
111127
symlinks: true
112128
},
@@ -125,6 +141,7 @@ module.exports = env => {
125141
devtool: hiddenSourceMap ? "hidden-source-map" : (sourceMap ? "inline-source-map" : "none"),
126142
optimization: {
127143
runtimeChunk: "single",
144+
noEmitOnErrors: noEmitOnErrorFromTSConfig,
128145
splitChunks: {
129146
cacheGroups: {
130147
vendor: {
@@ -228,7 +245,7 @@ module.exports = env => {
228245
// Define useful constants like TNS_WEBPACK
229246
new webpack.DefinePlugin({
230247
"global.TNS_WEBPACK": "true",
231-
"process": undefined,
248+
"process": "global.process",
232249
}),
233250
// Remove all files from the out dir.
234251
new CleanWebpackPlugin(itemsToClean, { verbose: !!verbose }),
@@ -254,6 +271,7 @@ module.exports = env => {
254271
tsconfig: tsConfigPath,
255272
async: false,
256273
useTypescriptIncrementalApi: true,
274+
checkSyntacticErrors: true,
257275
memoryLimit: 4096
258276
})
259277
],
@@ -278,6 +296,9 @@ module.exports = env => {
278296
],
279297
projectRoot,
280298
webpackConfig: config,
299+
snapshotInDocker,
300+
skipSnapshotTools,
301+
useLibs
281302
}));
282303
}
283304

@@ -287,4 +308,4 @@ module.exports = env => {
287308

288309

289310
return config;
290-
};
311+
};

0 commit comments

Comments
 (0)