feat: ips helper, ts config, cleanups

This commit is contained in:
Igor Randjelovic
2021-03-05 15:34:16 +01:00
parent 4827b22359
commit aa0daba6a5
20 changed files with 743 additions and 44 deletions

View File

@ -1,38 +1,28 @@
import VirtualModulesPlugin from 'webpack-virtual-modules';
import { ContextExclusionPlugin } from 'webpack';
import Config from 'webpack-chain';
import dedent from 'ts-dedent';
import { join } from 'path';
import { getEntryDirPath } from '../helpers/platform';
import { addVirtualEntry } from '../helpers/virtualModules';
import { env as _env, IWebpackEnv } from '../index';
import base from './base';
export default function (config: Config, env: IWebpackEnv = _env): Config {
base(config, env);
const virtualEntryPath = join(getEntryDirPath(), '__virtual_entry__.js');
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
`
);
config.entry('bundle').add(virtualEntryPath);
config
.plugin('ContextExclusionPluginPlugin')
.use(ContextExclusionPlugin, [/__virtual_entry__\.js$/]);
// Add a virtual entry module that will register all modules into
// the nativescript module loader/handler
config.plugin('VirtualModulesPlugin').use(VirtualModulesPlugin, [
{
[virtualEntryPath]: dedent`
require('@nativescript/core/bundle-entry-points')
const context = require.context("~/", /* deep: */ true, /* filter: */ ${filterRE});
global.registerWebpackModules(context);
`,
},
]);
config.resolve.extensions.add('.xml');
// config.resolve.extensions.add('.xml');
// set up xml
config.module