1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- const {srcPath} = require('./paths.js');
- const browserslist = require('browserslist');
- const isProduction = process.env.NODE_ENV === 'production';
- const swcTransformOptions = {
- react: {
- refresh: !isProduction,
- runtime: 'automatic',
- },
- };
- const swcParserOptions = {
- };
- module.exports = function(isTs) {
- return {
- loader: require.resolve('swc-loader'),
- test: isTs ? /.tsx?$/ : /.(js|jsx|mjs)$/,
- include: srcPath,
- options: {
- jsc: {
- parser: {
- syntax: isTs ? 'typescript' : 'ecmascript',
- [isTs ? 'tsx' : 'jsx']: true,
- ...swcParserOptions,
- },
- transform: {
- ...swcTransformOptions,
- },
- experimental: {
- plugins: [
- isProduction && [
- require.resolve('swc-plugin-react-remove-properties'),
- {
- properties: ['data-testid'],
- },
- ],
- ].filter(Boolean),
- },
- },
- env: {
- targets: browserslist(),
- mode: 'entry',
- },
- },
- };
- };
|