@alicloud/console-toolkit-plugin-docs
Version:
console toolkit plugin for build docs
41 lines • 2.18 kB
JavaScript
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
;