UNPKG

@omnia/tooling-vue

Version:

Used to bundle and serve manifests web component that build on Vue framework.

77 lines (76 loc) 2.28 kB
'use strict'; 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;