refactor(webpack): use real modules and deprecate virtual modules

This commit is contained in:
Igor Randjelovic
2022-07-10 11:34:23 +02:00
committed by Nathan Walker
parent 2fbc1898db
commit 0556cf9b20
8 changed files with 46 additions and 83 deletions

View File

@@ -1,26 +1,18 @@
import Config from 'webpack-chain';
import { getEntryPath, getEntryDirPath } from '../helpers/platform';
import { addVirtualEntry } from '../helpers/virtualModules';
import { chainedSetAddAfter } from '../helpers/chain';
import { env as _env, IWebpackEnv } from '../index';
import { ContextExclusionPlugin } from 'webpack';
import base from './base';
import path from 'path';
export default function (config: Config, env: IWebpackEnv = _env): Config {
base(config, env);
const entryPath = getEntryPath();
const filterRE = '/.(xml|js|s?css)$/';
const virtualEntryPath = addVirtualEntry(
config,
'javascript',
`
// VIRTUAL ENTRY START
require('@nativescript/core/bundle-entry-points')
const context = require.context("~/", /* deep: */ true, /* filter: */ ${filterRE});
global.registerWebpackModules(context);
// VIRTUAL ENTRY END
`
const virtualEntryPath = path.resolve(
__dirname,
'../stubs/virtual-entry-javascript'
);
// exclude files starting with _ from require.context

View File

@@ -1,26 +1,18 @@
import Config from 'webpack-chain';
import { getEntryDirPath, getEntryPath } from '../helpers/platform';
import { addVirtualEntry } from '../helpers/virtualModules';
import { chainedSetAddAfter } from '../helpers/chain';
import { env as _env, IWebpackEnv } from '../index';
import { ContextExclusionPlugin } from 'webpack';
import base from './base';
import path from 'path';
export default function (config: Config, env: IWebpackEnv = _env): Config {
base(config, env);
const entryPath = getEntryPath();
const filterRE = '/\\.(xml|js|(?<!\\.d\\.)ts|s?css)$/';
const virtualEntryPath = addVirtualEntry(
config,
'typescript',
`
// VIRTUAL ENTRY START
require('@nativescript/core/bundle-entry-points')
const context = require.context("~/", /* deep: */ true, /* filter: */ ${filterRE});
global.registerWebpackModules(context);
// VIRTUAL ENTRY END
`
const virtualEntryPath = path.resolve(
__dirname,
'../stubs/virtual-entry-typescript.js'
);
// exclude files starting with _ from require.context

View File

@@ -8,6 +8,9 @@ import { getEntryDirPath } from './platform';
import dedent from 'ts-dedent';
import { getProjectFilePath } from './project';
/**
* @deprecated Virtual entries are not recommended by the webpack team, use real files instead. For example, resolve a path in node_modules if necessary.
*/
export function addVirtualEntry(
config: Config,
name: string,
@@ -20,6 +23,9 @@ export function addVirtualEntry(
);
}
/**
* @deprecated Virtual modules are not recommended by the webpack team, use real files instead. For example, resolve a path in node_modules if necessary.
*/
export function addVirtualModule(
config: Config,
name: string,

View File

@@ -0,0 +1,5 @@
// VIRTUAL ENTRY START
require('@nativescript/core/bundle-entry-points')
const context = require.context("~/", /* deep: */ true, /* filter: */ /.(xml|js|s?css)$/);
global.registerWebpackModules(context);
// VIRTUAL ENTRY END

View File

@@ -0,0 +1,5 @@
// VIRTUAL ENTRY START
require('@nativescript/core/bundle-entry-points')
const context = require.context("~/", /* deep: */ true, /* filter: */ /\.(xml|js|(?<!\.d\.)ts|s?css)$/);
global.registerWebpackModules(context);
// VIRTUAL ENTRY END