mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-14 18:12:09 +08:00
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import path from 'path';
|
|
import fs from 'fs';
|
|
|
|
import { getAllDependencies, getDependencyPath } from './dependencies';
|
|
import { info, warn } from './log';
|
|
import * as lib from '../index';
|
|
import { clearCurrentPlugin, setCurrentPlugin } from '../index';
|
|
|
|
export function applyExternalConfigs() {
|
|
getAllDependencies().forEach((dependency) => {
|
|
const packagePath = getDependencyPath(dependency);
|
|
const configPath = path.join(packagePath, 'nativescript.webpack.js');
|
|
|
|
if (fs.existsSync(configPath)) {
|
|
info(`Discovered config: ${configPath}`);
|
|
setCurrentPlugin(dependency);
|
|
try {
|
|
const externalConfig = require(configPath);
|
|
|
|
if (typeof externalConfig === 'function') {
|
|
info('Applying external config...');
|
|
externalConfig(lib);
|
|
} else if (externalConfig) {
|
|
info('Merging external config...');
|
|
lib.mergeWebpack(externalConfig);
|
|
} else {
|
|
warn(
|
|
'Unsupported external config. The config must export a function or an object.'
|
|
);
|
|
}
|
|
} catch (err) {
|
|
warn(`
|
|
Unable to apply config: ${configPath}.
|
|
Error is: ${err}
|
|
`);
|
|
}
|
|
}
|
|
});
|
|
|
|
clearCurrentPlugin();
|
|
}
|