Files
2026-09-08 20:28:54 +08:00

3 lines
1.5 KiB
JavaScript

"use strict";const VueLoaderPlugin=require("vue-loader/lib/plugin"),MiniCssExtractPlugin=require("mini-css-extract-plugin"),Css2jsonPlugin=require("./plugin/css2json-plugin"),InstVuePlugin=require("./plugin/instvue-plugin");module.exports.postHook=function(e,{cwd:s},r){let o;r.hapConfig?(o=r.hapConfig,o.webpack&&(o=o.webpack)):o={module:{rules:[{test:/\.css$/,use:[MiniCssExtractPlugin.loader,"css-loader"]},{test:/\.vue$/,use:{loader:require.resolve("vue-loader"),options:{hotReload:!1,compilerOptions:{preserveWhitespace:!1}}}},{test:/\.(png|jpe?g|gif|svg|bmp|webp|mp4|wmv|avi|mpg|rmvb|mov|flv|otf|ttf|ttc|woff|eot)$/i,use:{loader:require.resolve("url-loader")}}]},plugins:[new VueLoaderPlugin,new MiniCssExtractPlugin({filename:"[name].css.json"})]},(o&&o.module&&o.module.rules||[]).forEach(s=>{s.test.exec(".vue")&&(r.loaderWrapper(s),r.enableE2e&&s.use.push({loader:require.resolve("@hap-toolkit/packager/lib/loader/inject-suite-loader.js"),options:{hookName:"beforeCreate"}}),s.use.push({loader:require.resolve("./loader/validator-loader")})),s.test.exec(".ts")&&r.loaderWrapper(s),e.module.rules.push(s)}),e.plugins.push(...o&&o.plugins||[]),e.plugins.push(new Css2jsonPlugin,new InstVuePlugin),Object.keys(e.resolve).forEach(s=>{const r=e.resolve[s];r instanceof Array?r.push(...o.resolve&&o.resolve[s]||[]):"object"==typeof r&&null!==r&&Object.assign(r,o.resolve&&o.resolve[s]||{})}),Object.keys(o&&o.resolve||{}).forEach(s=>{s in e.resolve||(e.resolve[s]=o.resolve[s])})};
//# sourceMappingURL=webpack.post.js.map