UNPKG

@hap-toolkit/dsl-vue

Version:

webpack {loader,plugin} for supporting vue in quickapp

3 lines (2 loc) 1.95 kB
"use strict";const VueLoaderPlugin=require("vue-loader/lib/plugin"),MiniCssExtractPlugin=require("mini-css-extract-plugin"),{compileOptionsObject:compileOptionsObject}=require("@hap-toolkit/shared-utils/compilation-config"),{loaderWrapper:loaderWrapper}=require("@hap-toolkit/packager/lib/common/utils"),Css2jsonPlugin=require("./plugins/css2json-plugin"),InstVuePlugin=require("./plugins/instvue-plugin");module.exports.postHook=function(e,{cwd:s,pathSrc:o},r){let l;r?(l=r,l.webpack&&(l=l.webpack)):l={module:{rules:[{test:/\.css$/,use:[MiniCssExtractPlugin.loader,require.resolve("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"})]};(l&&l.module&&l.module.rules||[]).forEach((s=>{s.test.exec(".vue")&&(loaderWrapper(o,s),compileOptionsObject.enableE2e&&s.use.push({loader:require.resolve("@hap-toolkit/packager/lib/loaders/inject-suite-loader.js"),options:{hookName:"beforeCreate"}}),compileOptionsObject.enableDiagnosis&&s.use.push({loader:require.resolve("@hap-toolkit/packager/lib/loaders/diagnosis-loader.js"),options:{hookName:"onCreate",hostName:compileOptionsObject.enableDiagnosis}}),s.use.push({loader:require.resolve("./loaders/validator-loader")})),s.test.exec(".ts")&&loaderWrapper(o,s),e.module.rules.push(s)})),e.plugins.push(...l&&l.plugins||[]),e.plugins.push(new Css2jsonPlugin,new InstVuePlugin),Object.keys(e.resolve).forEach((s=>{const o=e.resolve[s];o instanceof Array?o.push(...l.resolve&&l.resolve[s]||[]):"object"==typeof o&&null!==o&&Object.assign(o,l.resolve&&l.resolve[s]||{})})),Object.keys(l&&l.resolve||{}).forEach((s=>{s in e.resolve||(e.resolve[s]=l.resolve[s])}))}; //# sourceMappingURL=webpack.post.js.map