Files
vant/packages/vant-cli/src/config/babel.config.ts
2020-12-04 14:12:22 +08:00

52 lines
1.1 KiB
TypeScript

import { ConfigAPI } from '@babel/core';
type PresetOption = {
loose?: boolean;
};
module.exports = function (api?: ConfigAPI, options: PresetOption = {}) {
if (api) {
api.cache.never();
}
const { BABEL_MODULE, NODE_ENV } = process.env;
const isTest = NODE_ENV === 'test';
const useESModules = BABEL_MODULE !== 'commonjs' && !isTest;
return {
presets: [
[
'@babel/preset-env',
{
modules: useESModules ? false : 'commonjs',
loose: options.loose,
},
],
'@babel/preset-typescript',
require('../compiler/babel-preset-vue-ts'),
],
plugins: [
[
'@babel/plugin-transform-runtime',
{
corejs: false,
useESModules,
},
],
[
'import',
{
libraryName: 'vant',
libraryDirectory: useESModules ? 'es' : 'lib',
style: true,
},
'vant',
],
'@vue/babel-plugin-jsx',
'@babel/plugin-transform-object-assign',
],
};
};
export default module.exports;