lib/cli/src/generators/METEOR/index.ts
import fs from 'fs';
import JSON5 from 'json5';
import { baseGenerator, Generator } from '../baseGenerator';
const generator: Generator = async (packageManager, npmOptions, options) => {
baseGenerator(packageManager, npmOptions, options, 'react', {
extraPackages: ['react', 'react-dom', '@babel/preset-env', '@babel/preset-react'],
staticDir: 'dist',
});
// create or update .babelrc
let babelrc = null;
if (fs.existsSync('.babelrc')) {
const babelrcContent = fs.readFileSync('.babelrc', 'utf8');
babelrc = JSON5.parse(babelrcContent);
babelrc.plugins = babelrc.plugins || [];
} else {
babelrc = {
presets: [
['@babel/preset-env', { shippedProposals: true, useBuiltIns: 'usage', corejs: '3' }],
'@babel/preset-react',
],
};
}
fs.writeFileSync('.babelrc', JSON.stringify(babelrc, null, 2), 'utf8');
};
export default generator;