fix: load globals first

This commit is contained in:
Igor Randjelovic
2020-11-22 14:54:26 +01:00
parent 741d4b242b
commit 403fa6b30f
3 changed files with 21 additions and 15 deletions

View File

@ -21,8 +21,9 @@ export default function (config: Config, env: IWebpackEnv): Config {
config.mode(mode); config.mode(mode);
// package.json is generated by the CLI with runtime options // package.json is generated by the CLI with runtime options
// this ensures it's not included in the bundle // this ensures it's not included in the bundle, but rather
config.externals(['package.json']); // resolved at runtime
config.externals(['package.json', '~/package.json']);
// todo: devtool // todo: devtool
config.devtool('inline-source-map'); config.devtool('inline-source-map');
@ -32,7 +33,18 @@ export default function (config: Config, env: IWebpackEnv): Config {
// appears to be working - but we still have to deal with HMR // appears to be working - but we still have to deal with HMR
config.target('node'); config.target('node');
config.entry('bundle').add(entryPath); config
.entry('bundle')
// ensure we load nativescript globals first
.add('@nativescript/core/globals/index.js')
.add(entryPath);
// inspector_modules
config.when(shouldIncludeInspectorModules(env), (config) => {
config
.entry('tns_modules/@nativescript/core/inspector_modules')
.add('@nativescript/core/inspector_modules');
});
config.output config.output
.path(getAbsoluteDistPath()) .path(getAbsoluteDistPath())
@ -74,13 +86,6 @@ export default function (config: Config, env: IWebpackEnv): Config {
.add('node_modules/@nativescript/webpack/dist/loaders') .add('node_modules/@nativescript/webpack/dist/loaders')
.add('node_modules'); .add('node_modules');
// inspector_modules
config.when(shouldIncludeInspectorModules(env), (config) => {
config
.entry('tns_modules/@nativescript/core/inspector_modules')
.add('@nativescript/core/inspector_modules');
});
config.resolve.extensions config.resolve.extensions
.add(`.${platform}.ts`) .add(`.${platform}.ts`)
.add('.ts') .add('.ts')
@ -95,7 +100,6 @@ export default function (config: Config, env: IWebpackEnv): Config {
// base aliases // base aliases
config.resolve.alias config.resolve.alias
.set('~/package.json', 'package.json')
.set('~', '<TODO>appFullPath') .set('~', '<TODO>appFullPath')
.set('@', '<TODO>appFullPath'); .set('@', '<TODO>appFullPath');

View File

@ -1,3 +1,4 @@
import { merge } from 'webpack-merge';
import { getValue } from './config'; import { getValue } from './config';
import { getAllDependencies, getDependencyPath } from './dependencies'; import { getAllDependencies, getDependencyPath } from './dependencies';
import { determineProjectFlavor } from './flavor'; import { determineProjectFlavor } from './flavor';
@ -16,6 +17,7 @@ import {
// that show all the utils inline // that show all the utils inline
// rather than imports to types // rather than imports to types
export default { export default {
merge,
config: { config: {
getValue, getValue,
}, },
@ -27,9 +29,9 @@ export default {
determineProjectFlavor, determineProjectFlavor,
}, },
log: { log: {
error,
info, info,
warn, warn,
error,
}, },
project: { project: {
getProjectRootPath, getProjectRootPath,

View File

@ -11,7 +11,7 @@ function cleanup(data: any[]) {
} }
export function error(...data: any): Error { export function error(...data: any): Error {
console.error(`[@nativescript/webpack]`, ...cleanup(data)); console.error(`[@nativescript/webpack] Error: \n`, ...cleanup(data));
// we return the error - the caller can throw or ignore // we return the error - the caller can throw or ignore
if (typeof data[0] === 'string') { if (typeof data[0] === 'string') {
@ -22,11 +22,11 @@ export function error(...data: any): Error {
} }
export function warn(...data: any): void { export function warn(...data: any): void {
console.warn(`[@nativescript/webpack]`, ...cleanup(data)); console.warn(`[@nativescript/webpack] Warn: \n`, ...cleanup(data));
} }
export function info(...data: any): void { export function info(...data: any): void {
console.info(`[@nativescript/webpack]`, ...cleanup(data)); console.info(`[@nativescript/webpack] Info: \n`, ...cleanup(data));
} }
// todo: refine // todo: refine