'use strict' /** * This file overrides the default react webpack config. * This react config enables the use of TypeScript. * * @override node_modules/cozy-scripts/config/webpack.config.react.js */ const webpack = require('webpack') const { useHotReload } = require('cozy-scripts/config/webpack.vars') const CTS = require('cozy-scripts/utils/constants.js') const babelConf = require('./babel.config') process.env[CTS.ENTRY_EXT] = '.tsx' // Replaces .jsx module.exports = { resolve: { extensions: ['.jsx', '.tsx', '.ts', '.scss'], // Add TS extensions }, module: { rules: [ { test: /\.(ts|js)x?$/, // Add TS extensions exclude: /node_modules\/(?!(cozy-ui))/, loader: require.resolve('cozy-scripts/node_modules/babel-loader'), // Add full path options: { cacheDirectory: 'node_modules/.cache/babel-loader/react', presets: babelConf.presets, plugins: useHotReload ? babelConf.plugins : [], }, }, { test: /\.scss$/, loaders: [ require.resolve('style-loader'), require.resolve('css-loader'), require.resolve('sass-loader'), ], }, ], }, // Necessary for cozy-ui during Preact -> React apps transition plugins: [ new webpack.DefinePlugin({ 'process.env': { USE_REACT: 'true', }, }), ], }