@omnia/tooling-vue
Version:
Used to bundle and serve manifests web component that build on Vue framework.
62 lines (61 loc) • 1.76 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
var path = require('path');
const $ = tslib_1.__importStar(require("../variables"));
function default_1(treeshaking, wcDomProps, hotModuleReload) {
const babelLoaderOptions = {
cacheDirectory: true,
plugins: [
// "@babel/plugin-transform-modules-commonjs",
// "syntax-jsx",
// "jsx-v-model",
// "transform-vue-jsx"
],
presets: [
[
'@vue/babel-preset-jsx',
{
vModel: true,
compositionAPI: true,
},
],
]
};
var tsLoaderOptions = {
happyPackMode: true,
transpileOnly: true
};
if (treeshaking) {
tsLoaderOptions.configFile = path.resolve(__dirname, "../config/tsconfig.es2015.json");
}
let loaders = [
//{
// loader: 'cache-loader'
//},
{
loader: 'babel-loader',
options: babelLoaderOptions
},
//{
// loader: path.resolve(__dirname, './wcmanifest-loader.js')
//},
{
loader: path.resolve(__dirname, $.isExtensionEnv ? './vue-domprops-loader.js' : './vue-domprops-loader.ts'),
options: wcDomProps
}
];
if (hotModuleReload) {
loaders.push({
loader: path.resolve(__dirname, $.isExtensionEnv ? './vue-tsx-hot-loader.js' : './vue-tsx-hot-loader.ts')
});
}
return [
{
test: /\.jsx$/,
exclude: /(node_modules|bower_components)/,
use: loaders
}
];
}
exports.default = default_1;
;