jolly-oil-35623
07/25/2022, 12:55 PMconst { defineConfig } = require('cypress')
const webpackConfig = require('./cypress/webpack.cypress.config')
module.exports = defineConfig({
modifyObstructiveCode: true,
experimentalSourceRewriting: true,
hideXHR: false,
chromeWebSecurity: false,
component: {
devServer: {
framework: 'react',
bundler: 'webpack',
webpackConfig: webpackConfig
},
supportFile: 'cypress/support/component.js',
specPattern: 'cypress/component/**/*.cy.js'
},
webpack.cypress.config.js:
const path = require('path')
const webpack = require('webpack')
module.exports = {
mode: 'development',
devtool: false,
resolve: {
alias: {
'@': path.resolve('src')
},
modules: [path.join(__dirname, 'modules'), 'node_modules']
},
plugins: [
new webpack.ProvidePlugin({
React: 'react'
})
],
module: {
rules: [
{
test: /\.js$/,
include: path.resolve(__dirname, 'src'),
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env', '@babel/preset-react'],
plugins: [
[
'@babel/plugin-transform-modules-commonjs',
{
loose: true
}
]
]
}
}
},
// For compiling sass
{
test: /\.s[ac]ss$/i,
use: [
'style-loader',
{
loader: 'css-loader',
options: { url: false }
},
'postcss-loader',
'resolve-url-loader',
{
loader: 'sass-loader',
options: {
sourceMap: true,
sassOptions: {
sourceMapContents: true
}
}
}
]
},
{
test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,
type: 'asset'
}
]
}
}