apim-developer-portal2
Version:
API management developer portal
80 lines (77 loc) • 2.34 kB
JavaScript
const path = require("path");
const CopyWebpackPlugin = require("copy-webpack-plugin");
const CleanWebpackPlugin = require("clean-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const runtimeConfig = require("./webpack.runtime");
const publisherConfig = {
mode: "none",
target: "node",
node: {
__dirname: false,
__filename: false,
},
entry: {
"index": ["./src/startup.publish.ts"]
},
optimization: {
minimize: false
},
output: {
filename: "./[name].js",
path: path.resolve(__dirname, "dist/publisher"),
library: "publisher",
libraryTarget: "commonjs2"
},
module: {
rules: [
{
test: /\.scss$/,
use: [
MiniCssExtractPlugin.loader,
{ loader: "css-loader", options: { url: false } },
{ loader: "postcss-loader" },
{ loader: "sass-loader" }
]
},
{
test: /\.tsx?$/,
loader: "awesome-typescript-loader"
},
{
test: /\.html$/,
loader: "html-loader",
options: {
esModule: true,
minimize: {
removeComments: false,
collapseWhitespace: false
}
}
},
{
test: /\.(png|woff|woff2|eot|ttf|svg)$/,
loader: "url-loader",
options: {
limit: 10000
}
},
{
test: /\.liquid$/,
loader: "raw-loader"
}
]
},
plugins: [
new CleanWebpackPlugin(),
new MiniCssExtractPlugin({ filename: "[name].css", chunkFilename: "[id].css" }),
new CopyWebpackPlugin({
patterns: [
{ from: `./src/config.design.json`, to: `config.json` }
]
})
],
resolve: {
extensions: [".ts", ".tsx", ".js", ".jsx", ".html", ".scss"]
}
};
module.exports = [publisherConfig, runtimeConfig(false)];