@omnia/tooling-vue
Version:
Used to bundle and serve manifests web component that build on Vue framework.
77 lines (76 loc) • 2.28 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',
$.isExtensionEnv ?
'./node_modules/@omnia/tooling-vue/internal-do-not-import-from-here/babel/preset-jsx.js'
: './client/tooling/vue/babel/preset-jsx.ts',
{
vModel: true,
compositionAPI: true,
},
],
]
};
var tsLoaderOptions = {
happyPackMode: true,
transpileOnly: true
};
if (treeshaking) {
tsLoaderOptions.configFile = path.resolve(__dirname, "../config/tsconfig.es2015.json");
}
let loaders = [
//{
// loader: 'thread-loader',
// options: {
// workers: require('os').cpus().length,
// },
//},
{
loader: 'babel-loader',
options: babelLoaderOptions
},
//{
// loader: 'ts-loader',
// options: tsLoaderOptions
//},
{
loader: 'esbuild-loader',
options: {
loader: 'tsx',
target: 'es2022',
jsx: 'preserve'
},
},
{
loader: path.resolve(__dirname, $.isExtensionEnv ? './vue-domprops-loader.js' : './vue-domprops-loader.ts'),
options: wcDomProps
}
];
if (hotModuleReload) {
loaders.push({
loader: path.resolve(__dirname, __dirname, $.isExtensionEnv ? './vue-tsx-hot-loader.js' : './vue-tsx-hot-loader.ts'),
});
}
return [
{
test: /\.tsx$/,
exclude: /(node_modules|bower_components)/,
use: loaders
}
];
}
exports.default = default_1;
;