UNPKG

xaefc

Version:

Elegant devtool for formily component.

96 lines (93 loc) 2.49 kB
const path = require("path"); const rs = require.resolve; const { VueLoaderPlugin } = require("vue-loader"); const webpack = require("webpack"); const Configer = ({ context, builder, devMode = true }) => { return { ...{ mode: devMode ? "development" : "production", entry: devMode ? { demo: { import: context?.entry?.demo, library: { name: "[name]", type: "umd", export: "default", }, }, "webpack-hot-middleware/client": rs( "webpack-hot-middleware/client" ), } : {}, output: { filename: context?.output?.filename, path: context?.output?.path, publicPath: context?.output?.publicPath, library: context?.output?.library, }, resolve: { alias: context?.resolve.alias, }, externals: { "vue@next": "Vue", vue: "Vue", "@vue/composition-api": "VueCompositionAPI", }, module: { rules: devMode ? [ { test: /\.vue$/, use: [ { loader: rs("vue-loader"), options: { hotReload: true, }, }, ], }, { test: /\.tsx?$/, use: [ { loader: rs("ts-loader"), }, ], }, { test: /\.s[ac]ss|.css$/i, use: [ rs("style-loader"), rs("css-loader"), { loader: rs("sass-loader"), options: { implementation: rs("sass"), sassOptions: {}, }, }, ], }, ] : [], }, plugins: [ new VueLoaderPlugin(), new webpack.HotModuleReplacementPlugin(), new webpack.NoEmitOnErrorsPlugin(), ], optimization: { runtimeChunk: "single", }, }, ...(devMode ? { devtool: "source-map", } : {}), }; }; module.exports = Configer;