vue-pure-admin/node_modules/vite/dist/node/build/buildPluginEsbuild.js
2021-03-01 15:06:11 +08:00

45 lines
1.6 KiB
JavaScript

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createEsbuildRenderChunkPlugin = exports.createEsbuildPlugin = void 0;
const fs_extra_1 = __importDefault(require("fs-extra"));
const esbuildService_1 = require("../esbuildService");
exports.createEsbuildPlugin = async (jsx = 'vue') => {
const jsxConfig = esbuildService_1.resolveJsxOptions(jsx);
return {
name: 'vite:esbuild',
resolveId(id) {
if (id === esbuildService_1.vueJsxPublicPath) {
return esbuildService_1.vueJsxPublicPath;
}
},
load(id) {
if (id === esbuildService_1.vueJsxPublicPath) {
return fs_extra_1.default.readFileSync(esbuildService_1.vueJsxFilePath, 'utf-8');
}
},
async transform(code, id) {
const isVueTs = /\.vue\?/.test(id) && id.endsWith('lang.ts');
if (esbuildService_1.tjsxRE.test(id) || isVueTs) {
return esbuildService_1.transform(code, id, {
...jsxConfig,
...(isVueTs ? { loader: 'ts' } : null)
}, jsx);
}
}
};
};
exports.createEsbuildRenderChunkPlugin = (target, minify) => {
return {
name: 'vite:esbuild-transpile',
async renderChunk(code, chunk) {
return esbuildService_1.transform(code, chunk.fileName, {
target,
minify
});
}
};
};
//# sourceMappingURL=buildPluginEsbuild.js.map