webpack5 resolve file error in monorepo
See original GitHub issueBug report
What is the current behavior? I use webpack 5 with this plugin in a simple yarn workspaces monorepo, Which contain a simple add and a common util library. But there is an error reported:
If the current behavior is a bug, please provide the steps to reproduce. This is a repo to reproduce: test-monorepo.
git clone https://github.com/diem98/test-monorepo.git
cd test-monorepo && yarn
cd apps/web-app
yarn dev
After that, you can see the error in the figure above.
apps/web-app/src/App.tsx
content as below:
import React, {useState} from 'react';
import {addOne} from 'common-tools';
import { add } from './utils';
console.log(`add(1,2) : ${add(1,2)}`)
const App = () => {
const [num, setNum] = useState(0);
const handleClick = () => {
setNum(prev => addOne(prev));
}
return (
<div>
<h1>current number: {num}</h1>
<button type="button" onClick={handleClick}>addOne</button>
</div>
)
}
export default App;
You can see that import addOne
from common-tools
package and import add
function from it’s own utils directory.
packages/common-tools
export detail as below:
But inside the dist, it is like this:
You will find that import ./utils
in common-tools/src/add.ts
compiled to ./src/utils/index.js
, This leads to the error described above.
What is the expected behavior?
It should compile successfully as it did in webpack 4.
branch webpack-4 will compile successfully with the same code.
I tried to dive into the plugin source code, The getInnerRequest
return value was found to be different
In webpack 4 ./utils
just returns as expected: ./src/utils
. But In webpack 5, ./utils
returns src/utils
.
So in webpack 5 it will execute the following matchPath
function. then ./utils
request in common-tools/src/add.ts
resolved to apps/web-app/src/utils/index.js
.
I found that the different results are related to the different versions of the enhanced-resolve implementation. But I don’t know if it was done intentionally.
https://codesandbox.io/s/focused-rain-4hoyq?file=/src/index.js
Thank you very much for your help, and please forgive my broken English.
Other relevant information: webpack version: 5.32 Node.js version: 14.15.4 Operating System: macos
Issue Analytics
- State:
- Created 2 years ago
- Reactions:2
- Comments:8
Top GitHub Comments
I will look at this in near future
Any news on this issue?