vue-cli-plugin-antd
Version:
@vue/cli plugin to add ant-design-vue
65 lines (64 loc) • 2.15 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const index_1 = require("../index");
const vue_cli_plugin_tools_1 = require("vue-cli-plugin-tools");
/**
* VUE Generator 扩展
* @param api GeneratorAPI 实例
* @param opts 插件配置选项
* @param preset 当前使用预设
*/
exports.default = (api, opts, preset) => {
const isVue3 = preset.vueVersion === '3';
/* 预设中的配置 */
const { antd } = preset;
const mergeOpts = { ...index_1.DEFAULT_ANTD_PLUGIN_OPTION, ...opts };
if (!mergeOpts.registry) {
delete mergeOpts.registry;
}
const { versions, ...rest } = mergeOpts;
const devDependencies = {
less: versions.less,
'less-loader': versions['less-loader'],
};
const codeModOptions = {
importName: 'Antd',
libraryName: 'ant-design-vue',
style: {
dir: 'dist',
name: 'antd',
suffix: opts.style === true ? 'less' : 'css',
},
};
/* 入口文件转换 */
const entryFileTransform = vue_cli_plugin_tools_1.useTransform({
...codeModOptions,
/* 按需引入时移除导入 */
remove: opts.importType !== 'full',
});
api.transformScript(api.entryFile, entryFileTransform);
/* 转换 babel 配置文件 */
const babelConfigFileTransform = vue_cli_plugin_tools_1.babelTransform({
...codeModOptions,
/* 全量引入时移除插件 */
remove: opts.importType === 'full',
});
api.transformScript('babel.config.js', babelConfigFileTransform);
devDependencies['babel-plugin-import'] = versions['babel-plugin-import'];
api.extendPackage({
dependencies: {
'ant-design-vue': versions['ant-design-vue'],
},
devDependencies,
vue: {
pluginOptions: {
antd: { ...rest },
},
css: {
loaderOptions: {
less: { lessOptions: { javascriptEnabled: true } },
},
},
},
});
};