feat: addCopyRule removeCopyRule helpers

This commit is contained in:
Igor Randjelovic
2020-12-01 20:23:56 +01:00
parent 5dad44a8e3
commit fa70654bfc
5 changed files with 60 additions and 24 deletions

View File

@@ -0,0 +1,36 @@
import CopyWebpackPlugin from 'copy-webpack-plugin';
import { getEntryDirPath } from './project';
/**
* @internal
*/
export let copyRules = new Set([]);
export function addCopyRule(glob: string) {
copyRules.add(glob);
}
export function removeCopyRule(glob: string) {
copyRules.delete(glob);
}
/**
* @internal
*/
export function applyCopyRules(config) {
config.plugin('CopyWebpackPlugin').use(CopyWebpackPlugin, [
{
patterns: Array.from(copyRules).map((glob) => ({
from: glob,
context: getEntryDirPath(),
noErrorOnMissing: true,
globOptions: {
dot: false,
// todo: ignore AppResources if inside app folder!
// ignore: [``]
},
})),
},
]);
}

View File

@@ -1,13 +1,14 @@
import { merge } from 'webpack-merge';
import { addCopyRule, removeCopyRule } from './copyRules';
import { determineProjectFlavor } from './flavor';
import { error, info, warn } from './log';
import { getValue } from './config';
import {
getAllDependencies,
hasDependency,
getDependencyPath,
} from './dependencies';
import { determineProjectFlavor } from './flavor';
import { error, info, warn } from './log';
import { getValue } from './config';
import {
getAbsoluteDistPath,
getDistPath,
@@ -22,8 +23,11 @@ import {
// as this generates nicer typings
// that show all the utils inline
// rather than imports to types
// todo: maybe use api-extractor instead
export default {
merge,
addCopyRule,
removeCopyRule,
config: {
getValue,
},