@aliretail/vite-config-xixi
Version:
瓴羊客服vite配置脚手架
59 lines (58 loc) • 2.96 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.fetchDevExternals = exports.fetchExternals = exports.fetchJson = void 0;
const fetch_h2_1 = require("fetch-h2");
const _ = require("lodash");
function fetchJson(url, input) {
return (0, fetch_h2_1.fetch)(url, input).then(res => res.json()).then(({ success, message, data }) => {
if (success)
return data;
throw new Error(message);
});
}
exports.fetchJson = fetchJson;
async function internalFetchExternals() {
let result = ['@ali/xixi-design-icons', 'xixikf-devtools', '@ali/xixi-design-xixikf-widget',
'@ali/xixikf-next-form-polymorph-adapter', '@ali/b6-render-engine', 'autotest', '@ali/xreplay-recorder-api',
'@ali/servos-design', '@ant-design/pro-form', '@ant-design/icons', '@ant-design/pro-table',
'@ali/xixikf-next-form-gateway-service', '@ali/servos-core', '@ali/xixikf-b6-render-service',
'react-use', '@ali/xixi-connected-client', '@ali/xixikf-support',
'@ali/xixikf-im-sdk-react', '@ali/xixikf-im-sdk', '@ali/xixikf-im-core',
'@ali/aes-tracker/index', '@ali/xform-core', '@ali/xform-antd',
'@ali/xixi-xform', 'react-quill', 'prop-types', 'react-draggable',
'lodash', '@ali/xixi-design', 'react-query', 'react-beautiful-dnd',
'@ali/mopen-mtop-client', 'moment', 'antd', 'classnames', 'history',
'react-router', 'react-router-dom', 'react-redux', 'redux',
'@reduxjs/toolkit', '@ali/xfeedback-api', '@ali/trace-sdk',
'@ali/trace-plugin-resource-error', '@ali/servos-ui',
'@ali/xixikf-theme', '@ali/xixikf-workbench'];
try {
const url = process.env.BUNDLE_LIST_URL || '';
if (url != '') {
const { dataList: libraries } = await fetchJson(url);
result = [..._.map(libraries.filter((l) => l.status === 'Online'), 'packageName'), '@ali/xixikf-workbench'];
}
}
catch (e) {
console.error(e);
}
return result;
}
async function fetchExternals() {
const [libs] = await Promise.all([internalFetchExternals()]);
const externals = _.intersection(libs);
if (process.env.EXTERNALS) {
const localExternals = process.env.EXTERNALS.split(',');
const { add, remove } = _.groupBy(localExternals, ext => ext.startsWith('-') ? 'remove' : 'add');
return _.difference(externals.concat(add ?? []), remove?.map(ext => ext.slice(1)) ?? []);
}
return externals;
}
exports.fetchExternals = fetchExternals;
async function fetchDevExternals() {
const [packages] = await Promise.all([fetchExternals()]);
const externals = _.fromPairs(packages.map(p => [p, `__DEV__${_.camelCase(p)}`]));
return _.omit(externals, ['react', 'react-dom', 'react-dom/server', 'lottie-web',
'autotestcase', 'jsoneditor', '@ali/test-success-marker', '@ali/aes-tracker-plugin-survey/index']);
}
exports.fetchDevExternals = fetchDevExternals;
;