mirror of
https://gitee.com/ant-design-vue/ant-design-vue.git
synced 2024-11-29 18:48:32 +08:00
chore: provide esm output file in dist (#6966)
This commit is contained in:
parent
3c5fb84542
commit
c5ea668e88
@ -22,7 +22,7 @@ const imageOptions = {
|
|||||||
limit: 10000,
|
limit: 10000,
|
||||||
};
|
};
|
||||||
|
|
||||||
function getWebpackConfig(modules) {
|
function getWebpackConfig(modules, esm = false) {
|
||||||
const pkg = require(getProjectPath('package.json'));
|
const pkg = require(getProjectPath('package.json'));
|
||||||
const babelConfig = require('./getBabelCommonConfig')(modules || false);
|
const babelConfig = require('./getBabelCommonConfig')(modules || false);
|
||||||
|
|
||||||
@ -185,7 +185,7 @@ All rights reserved.
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (process.env.RUN_ENV === 'PRODUCTION') {
|
if (process.env.RUN_ENV === 'PRODUCTION') {
|
||||||
const entry = ['./index'];
|
let entry = ['./index'];
|
||||||
config.externals = [
|
config.externals = [
|
||||||
{
|
{
|
||||||
vue: {
|
vue: {
|
||||||
@ -197,9 +197,25 @@ All rights reserved.
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
config.output.library = distFileBaseName;
|
if (esm) {
|
||||||
config.output.libraryTarget = 'umd';
|
entry = ['./index.esm'];
|
||||||
config.output.globalObject = 'this';
|
config.experiments = {
|
||||||
|
...config.experiments,
|
||||||
|
outputModule: true,
|
||||||
|
};
|
||||||
|
config.output.chunkFormat = 'module';
|
||||||
|
config.output.library = {
|
||||||
|
type: 'module',
|
||||||
|
};
|
||||||
|
config.target = 'es2019';
|
||||||
|
} else {
|
||||||
|
config.output.libraryTarget = 'umd';
|
||||||
|
config.output.library = distFileBaseName;
|
||||||
|
config.output.globalObject = 'this';
|
||||||
|
}
|
||||||
|
|
||||||
|
const entryName = esm ? `${distFileBaseName}.esm` : distFileBaseName;
|
||||||
|
|
||||||
config.optimization = {
|
config.optimization = {
|
||||||
minimizer: [
|
minimizer: [
|
||||||
new TerserPlugin({
|
new TerserPlugin({
|
||||||
@ -213,7 +229,7 @@ All rights reserved.
|
|||||||
// Development
|
// Development
|
||||||
const uncompressedConfig = merge({}, config, {
|
const uncompressedConfig = merge({}, config, {
|
||||||
entry: {
|
entry: {
|
||||||
[distFileBaseName]: entry,
|
[entryName]: entry,
|
||||||
},
|
},
|
||||||
mode: 'development',
|
mode: 'development',
|
||||||
plugins: [
|
plugins: [
|
||||||
@ -226,7 +242,7 @@ All rights reserved.
|
|||||||
// Production
|
// Production
|
||||||
const prodConfig = merge({}, config, {
|
const prodConfig = merge({}, config, {
|
||||||
entry: {
|
entry: {
|
||||||
[`${distFileBaseName}.min`]: entry,
|
[`${entryName}.min`]: entry,
|
||||||
},
|
},
|
||||||
mode: 'production',
|
mode: 'production',
|
||||||
plugins: [
|
plugins: [
|
||||||
|
@ -39,6 +39,7 @@ function externalDayjs(config) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const webpackConfig = getWebpackConfig(false);
|
const webpackConfig = getWebpackConfig(false);
|
||||||
|
const webpackESMConfig = getWebpackConfig(false, true);
|
||||||
|
|
||||||
if (process.env.RUN_ENV === 'PRODUCTION') {
|
if (process.env.RUN_ENV === 'PRODUCTION') {
|
||||||
webpackConfig.forEach(config => {
|
webpackConfig.forEach(config => {
|
||||||
@ -72,4 +73,4 @@ if (process.env.RUN_ENV === 'PRODUCTION') {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = [...webpackConfig];
|
module.exports = [...webpackConfig, ...webpackESMConfig];
|
||||||
|
Loading…
Reference in New Issue
Block a user