process.env.BABEL_ENV;
const isCommonJS = BABEL_ENV !== undefined && BABEL_ENV === 'cjs';
const isESM = BABEL_ENV !== undefined && BABEL_ENV === 'esm';
module.exports = function (api) {
api.cache(true);
const presets = [
[
'@babel/env',
{
loose: true,
modules: isCommonJS ? 'commonjs' : false,
targets: {
esmodules: isESM ? true : undefined,
},
},
],
'@babel/preset-typescript',
];
const ignore = ['/mocks', '/*.spec.js', '/*.spec.ts', '/*.test.js', '**/*.test.ts'];
return {
presets,
ignore,
};
};
В package.json:
"build:esm": "cross-env BABEL_ENV=esm babel src --root-mode upward --extensions .js,.jsx,.ts,.tsx -d dist/esm --source-maps",
"build:cjs": "cross-env BABEL_ENV=cjs babel src --root-mode upward --extensions .js,.jsx,.ts,.tsx -d dist/cjs --source-maps"
интересно. Спасибо! Попробую
Да, типы через tsc. Там есть опция для этого: tsconfig.build.json: { "compilerOptions": { "declaration": true, "emitDeclarationOnly": true, "declarationDir": "dist/types" }, "extends": "./tsconfig.json", } (В основном tsconfig'e обычная конфигурация) Далее через cli: "build:types": "tsc --project tsconfig.build.json"
Спасибо! про declaration=true, знаю. Не знал что отдельно типы можно генерировать
Могу пример поискать.
Обсуждают сегодня