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, знаю. Не знал что отдельно типы можно генерировать
Могу пример поискать.
Обсуждают сегодня