UNPKG

@alicloud/console-toolkit-plugin-docs

Version:

console toolkit plugin for build docs

41 lines 2.18 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var path_1 = __importDefault(require("path")); var webpack_virtual_modules_1 = __importDefault(require("webpack-virtual-modules")); module.exports = function (api, opts, args) { api.on('onChainWebpack', function (config, env) { var virtualModules = {}; // 这个虚拟模块可能会包含对用户node_modules的import, // 因此虚拟模块的路径应该在用户项目中 var virtualModulePath = path_1.default.join(api.getCwd(), '_virtual_module_', 'externaled-deps'); virtualModules['/@externaled-deps'] = "export {default} from \"".concat(virtualModulePath, "\";"); // 本地开发时,宿主应用要提供被external掉的依赖 if (!Array.isArray(opts.externals) || opts.externals.length === 0) { virtualModules[virtualModulePath] = "\n export default undefined;\n "; } else { var importsCode_1 = []; var objPropertiesCode_1 = []; opts.externals.forEach(function (item, idx) { var moduleName, importPath; if (typeof item === 'string') { moduleName = importPath = item; } else { moduleName = item.moduleName; importPath = item.usePathInDev || moduleName; } importsCode_1.push("import * as dep".concat(idx, " from \"").concat(importPath, "\";")); objPropertiesCode_1.push("\"".concat(moduleName, "\": dep").concat(idx, ",")); }); virtualModules[virtualModulePath] = "\n ".concat(importsCode_1.join('\n'), "\n export default {\n ").concat(objPropertiesCode_1.join('\n'), "\n };\n "); } config .plugin('virtual-module') .use(new webpack_virtual_modules_1.default(virtualModules)); }); }; //# sourceMappingURL=build-external-deps-plugin.js.map