UNPKG

materialuiupgraded

Version:

Material-UI's workspace package

180 lines (174 loc) 5.21 kB
const bpmr = require('babel-plugin-module-resolver'); function resolvePath(sourcePath, currentFile, opts) { if (sourcePath === 'markdown') { const base = currentFile.substring(__dirname.length).slice(0, -3); return `${__dirname}/docs/src/${base}/`; } return bpmr.resolvePath(sourcePath, currentFile, opts); } let defaultPresets; // We release a ES version of Material-UI. // It's something that matches the latest official supported features of JavaScript. // Nothing more (stage-1, etc), nothing less (require, etc). if (process.env.BABEL_ENV === 'es') { defaultPresets = []; } else { defaultPresets = [ [ '@babel/preset-env', { modules: ['modules', 'production-umd'].includes(process.env.BABEL_ENV) ? false : 'commonjs', }, ], ]; } module.exports = { presets: defaultPresets.concat(['@babel/preset-react']), plugins: [ ['@babel/plugin-proposal-class-properties', { loose: true }], [ '@babel/plugin-proposal-object-rest-spread', { // Workaround for https://github.com/babel/babel/issues/8323 loose: process.env.BABEL_ENV !== 'es', }, ], '@babel/plugin-transform-object-assign', '@babel/plugin-transform-runtime', ], env: { coverage: { plugins: [ 'babel-plugin-istanbul', [ 'babel-plugin-module-resolver', { root: ['./'], alias: { '@material-ui/core': './packages/material-ui/src', '@material-ui/icons': './packages/material-ui-icons/src', }, }, ], ], }, development: { plugins: [ [ 'babel-plugin-module-resolver', { alias: { modules: './modules', }, }, ], ], }, 'docs-development': { plugins: [ 'babel-plugin-preval', [ 'babel-plugin-module-resolver', { alias: { '@material-ui/core': './packages/material-ui/src', '@material-ui/docs': './packages/material-ui-docs/src', '@material-ui/icons': './packages/material-ui-icons/src', '@material-ui/lab': './packages/material-ui-lab/src', docs: './docs', modules: './modules', pages: './pages', }, transformFunctions: ['require', 'require.context'], resolvePath, }, ], ], }, 'docs-production': { plugins: [ 'babel-plugin-preval', [ 'babel-plugin-module-resolver', { alias: { '@material-ui/core': './packages/material-ui/src', '@material-ui/docs': './packages/material-ui-docs/src', '@material-ui/icons': './packages/material-ui-icons/src', '@material-ui/lab': './packages/material-ui-lab/src', docs: './docs', modules: './modules', pages: './pages', }, transformFunctions: ['require', 'require.context'], resolvePath, }, ], 'transform-react-constant-elements', 'transform-dev-warning', ['react-remove-properties', { properties: ['data-mui-test'] }], ['transform-react-remove-prop-types', { mode: 'remove' }], ], }, es: { plugins: [ 'transform-react-constant-elements', 'transform-dev-warning', ['react-remove-properties', { properties: ['data-mui-test'] }], [ 'transform-react-remove-prop-types', { mode: 'wrap', }, ], ], // It's most likely a babel bug. // We are using this ignore option in the CLI command but that has no effect. ignore: ['**/*.test.js'], }, production: { plugins: [ 'transform-react-constant-elements', 'transform-dev-warning', ['react-remove-properties', { properties: ['data-mui-test'] }], [ 'transform-react-remove-prop-types', { mode: 'wrap', }, ], ], // It's most likely a babel bug. // We are using this ignore option in the CLI command but that has no effect. ignore: ['**/*.test.js'], }, 'production-umd': { plugins: [ 'transform-react-constant-elements', 'transform-dev-warning', ['react-remove-properties', { properties: ['data-mui-test'] }], [ 'transform-react-remove-prop-types', { mode: 'wrap', }, ], ], }, test: { sourceMaps: 'both', plugins: [ [ 'babel-plugin-module-resolver', { root: ['./'], alias: { '@material-ui/core': './packages/material-ui/src', '@material-ui/icons': './packages/material-ui-icons/src', }, }, ], ], }, }, };