It doesn't resolve paths to files
I'm trying to use the plugin for css, graphql file mocks in order to run nodejs on tests.
It seems it should work as it specified in the description:
It also allows you to setup a custom alias for directories, specific files, or even other npm modules.
Nevertheless, what I'm getting is that actual file path is preserved.
My configuration:
require('@babel/register')({
extensions: ['.ts', '.tsx', '.jsx', '.js'],
plugins: [
[
'module-resolver',
{
root: ['./src', 'node_modules'],
alias: {
app: './app',
common: './common',
src: './src',
'\\.(jpg|ico|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga|graphql)$':
'./src/__mocks__/fileMock.ts',
'\\.(css|scss)$': './src/__mocks__/styleMock.ts'
},
},
],
],
});
Have you found a solution?
For me it doesn't work in a simplest use case.
module.exports = {
presets: [['@babel/preset-env'], ['@babel/preset-react'], ['@babel/preset-typescript']],
plugins: [
[
'module-resolver',
{
root: ['./src'],
},
],
'@babel/plugin-proposal-class-properties',
],
};
This doesn't rewrite paths like common/types relative to ./src.
Any ideas?
Ok, it should be instead:
module.exports = {
presets: [['@babel/preset-env'], ['@babel/preset-react'], ['@babel/preset-typescript']],
plugins: [
[
'module-resolver',
{
root: ['./src'],
extensions: ['.ts', '.tsx'],
},
],
'@babel/plugin-proposal-class-properties',
],
};
Note the extension key which for some strange reason is mandatory.
Kudos to @jb from SpeakJS discord community for the solution.