@nokecy/umi-plugin-erp-common
Version:
erp-common
88 lines (69 loc) • 2.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = _default;
function _react() {
const data = _interopRequireDefault(require("react"));
_react = function _react() {
return data;
};
return data;
}
function _path() {
const data = require("path");
_path = function _path() {
return data;
};
return data;
}
var _getContextContent = _interopRequireDefault(require("./utils/getContextContent"));
var _getErpCommonProviderContent = _interopRequireDefault(require("./utils/getErpCommonProviderContent"));
var _getErpCommonContent = _interopRequireDefault(require("./utils/getErpCommonContent"));
var _getRootContainerContent = _interopRequireDefault(require("./utils/getRootContainerContent"));
var _utils = require("./utils");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const erpCommon_DIR = 'plugin-abp-erp-common'; // plugin-erpCommon 插件创建临时文件的专有文件夹
function _default(api) {
const umiTmpDir = api.paths.absTmpPath;
const srcDir = api.paths.absSrcPath;
const erpCommonFilePath = api.utils.winPath((0, _path().join)(srcDir, 'erpCommon'));
api.describe({
key: "abperpcommon",
enableBy: api.EnableBy.register
});
api.onGenerateFiles(() => {
// 判断 erpCommon 工厂函数存在并且 default 暴露了一个函数
if ((0, _utils.checkIfHasDefaultExporting)(erpCommonFilePath)) {
// 创建 erpCommon 的 context 以便跨组件传递 erpCommon 实例
api.writeTmpFile({
path: `${erpCommon_DIR}/context.ts`,
content: (0, _getContextContent.default)()
}); // 创建 erpCommonProvider,1. 生成 erpCommon 实例; 2. 传给 context 的 Provider
api.writeTmpFile({
path: `${erpCommon_DIR}/erpCommonProvider.ts`,
content: (0, _getErpCommonProviderContent.default)(api.utils)
}); // 创建 erpCommon 的 hook
api.writeTmpFile({
path: `${erpCommon_DIR}/erpCommon.tsx`,
content: (0, _getErpCommonContent.default)()
}); // 生成 rootContainer 运行时配置
api.writeTmpFile({
path: `${erpCommon_DIR}/rootContainer.ts`,
content: (0, _getRootContainerContent.default)()
});
}
});
if ((0, _utils.checkIfHasDefaultExporting)(erpCommonFilePath)) {
// 增加 rootContainer 运行时配置
api.addRuntimePlugin({
fn: () => api.utils.winPath((0, _path().join)(umiTmpDir, erpCommon_DIR, 'rootContainer.ts')),
stage: -1
});
api.addUmiExports(() => [{
exportAll: true,
source: `../${erpCommon_DIR}/erpCommon`
}]);
api.addTmpGenerateWatcherPaths(() => [`${erpCommonFilePath}.ts`, `${erpCommonFilePath}.js`]);
}
}