@ali-i18n-fe/dada-component
Version:
54 lines (49 loc) • 1.42 kB
JavaScript
const makeDevConfig = require("./webpack.dev.js");
const path = require("path");
const LibraryNameReplacePlugin = require("./plugins/library-name-replace-plugin");
const { mergeWebpack } = require("./mergeWebpack");
const pickBy = require("lodash/pickBy");
module.exports = (options, mergeConfig = makeDevConfig) => {
const devConfig = mergeConfig(options);
const serverConfig = mergeWebpack(
devConfig,
{
output: {
library: "[name]"
},
module: {
rules: [
{
include: [path.resolve(options.rootPath, "./src")],
test: /[^(docs)]+\.tsx?$/,
use: [
{
loader: require.resolve(
"@ali-i18n-fe/react-docgen-typescript-loader-add-tag"
)
}
]
}
]
},
plugins: [
// new CopyWebpackPlugin(["data/*"]),
new LibraryNameReplacePlugin({
replacer: (path, chunk) => {
const { name } = chunk;
if (name === "index" && 'root["[name]"]' === path) {
return path.replace(/\[name]/gi, devConfig.output.library);
}
}
})
]
},
options.webpackMerge || {},
options.storiesWebpackMerge || {}
);
serverConfig.entry = pickBy(
serverConfig.entry,
(value, key) => !/^docs/.test(key)
);
return serverConfig;
};