12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- const path = require('path');
- const webpack = require('webpack');
- const babylonExternals = require('./babylonExternals');
- const hardSourceWebpackPlugin = require('hard-source-webpack-plugin');
- var configPath = "../Gulp/config.json";
- const configFolder = path.dirname(path.resolve(__dirname, configPath));
- const config = require(configPath);
- module.exports = function defaultConfig(options) {
- if (!options) {
- throw "Options are mandatory to create the config.";
- }
- const module = options.module;
- const settings = config[module];
- const src = path.resolve(__dirname, settings.build.srcDirectory);
- const webpackFolder = path.dirname(path.resolve(configFolder, settings.build.webpack));
- options.resolveExtensions = options.resolveExtensions || [];
- options.moduleRules = options.moduleRules || [];
- options.plugins = options.plugins || [];
- return {
- context: src,
- entry: {
- [settings.build.processDeclaration.packageName]: path.resolve(src, settings.libraries[0].entry),
- },
- output: {
- path: path.resolve(__dirname, config.build.outputDirectory) + settings.build.distOutputDirectory,
- filename: settings.libraries[0].output,
- libraryTarget: 'umd',
- library: {
- root: settings.build.processDeclaration.moduleName.split("."),
- amd: settings.build.processDeclaration.packageName,
- commonjs: settings.build.processDeclaration.packageName
- },
- umdNamedDefine: true
- },
- resolve: options.resolve || {
- extensions: [".ts", ...options.resolveExtensions]
- },
- externals: [babylonExternals()],
- devtool: "none",
- module: {
- rules: [{
- test: /\.tsx?$/,
- loader: 'awesome-typescript-loader',
- options: {
- configFileName: path.resolve(webpackFolder, './tsconfig.json'),
- declaration: false
- }
- }, ...options.moduleRules]
- },
- mode: "production",
- performance: {
- hints: false
- },
- plugins: [
- new hardSourceWebpackPlugin(),
- new webpack.WatchIgnorePlugin([
- /\.js$/,
- /\.d\.ts$/,
- /\.fx$/
- ]),
- ...options.plugins
- ]
- }
- };
|