Comments (7)
Yes, I will try to open a PR soon. Should be there the next few days latest. Locally solution 1 worked fine for me. But have to check all unit tests first.
from webpack.
Feel free to send a PR, we have a lot of tests, so we will catch potential problems
from webpack.
I found something suspicious which might allow an easy fix:
- Various top level symbols are marked by the InnerGraphPlugin:
webpack/lib/optimize/InnerGraphPlugin.js
Line 133 in 611bded
- The
InnerGraph.tagTopLevelSymbol
first defines a variable in the parser with the name and then additionally tags the variable with the top level symbol.
webpack/lib/optimize/InnerGraph.js
Lines 269 to 279 in 611bded
- The problem:
parser.defineVariable
adds a variable with the current scope as value.parser.tagVariable
also defines a variable but with the correct top level symbol as value. But as there is already a VariableInfo registered fromdefineVariable
resulting in the name not to be set
I see two potential fixes in this code path:
- In
InnerGraph.tagTopLevelSymbol
we remove the call toparser.defineVariable
. (or move it into the if-statement when a tag already exists).- Feels like the safer option as the change is quite isolated and just ensures we do not double-define the variable with missing info.
- In
JavaScriptParser.tagVariable
we fill the name we know instead oftrue
into the VariableInfo.- It seems the old name was used before and things were refactored as part of ec51894 I'm not so sure about the impact of this change.
from webpack.
Just looked at the reproducible test repo, yeah, we need to fix it, because other plugins can be broken, it can work for the development mode, but broken for the production mode, it is a critical issue... Will you look at this?
from webpack.
Made a proposal for fixing the problem. I'm willing to contribute the change as an individual developer but I'm a bit reluctant to provide so many personal details (e.g. mailing address) in the EasyCLA to just contribute some code to this project.
from webpack.
I wanted to resolve this issue
from webpack.
see if we directly adjust the hook registration logic to work with identifiers ,
(node:8984) [DEP_WEBPACK_COMPILATION_NORMAL_MODULE_LOADER_HOOK] DeprecationWarning: Compilation.hooks.normalModuleLoader was moved to NormalModule.getCompilationHooks(compilation).loader
it will give you just deprecation warning ,so if incase we adjust it so that we're tapping into the expression hook for the "new" keyword. Then, we check if the argument to new is an identifier (assuming it's a simple class name without further qualification) and directly check if it matches "NotWorkingClass"
This approach circumvents the need for the parser to fill freeName correctly and directly handles the class name. Try this adjustment in your code to see if it resolves the issue with NotWorkingClass expressions not triggering the hook.
I am going to attach my piece of code......
tell me if it helps you if not then we will work on this issue more
from webpack.
Related Issues (20)
- Module Federation - Some chunks are not loaded when navigating from the Remote module to the Host module
- failed to import ffmpeg-core.js HOT 1
- Webpack 5 doesnt generate the chunks of imports HOT 1
- Error: Cannot find module 'webpack-cli/package.json' HOT 2
- Unable to bust cache of module federation remotes....
- Re-exported Ant Design components don't have same style with the original components
- failed to import ffmpeg-core.js HOT 3
- DllPlugin: When processing multiple chunks, does the `path` option must have a string template?
- Webpack BannerPlugin with `raw` option should put `use strict` on the very first line HOT 10
- After webpack 5 migration not able to use local packages in a mono repo
- 95% emitting emit phase takes much longer in Node >=16
- Plugin apply not working for multi compiler HOT 2
- packages/tailwindcss/src/compile.ts HOT 1
- Current error handling mainly involves calling the `onInvalidCandidate` callback function to handle invalid candidates, and printing corresponding error messages to the console.
- [5.91.0] "Fixed fs types" breaks `outputFileSystem` compatibility with `memfs` HOT 8
- Using `[name]` within `output.library`, the correct value isn't utilized in the source map namespace HOT 3
- Not found node_modules/@angular/common/bundles/common-http.umd.js
- webpack5.90.0 Modifying files in the node_modules directory (local component library) cannot trigger hot updates HOT 1
- Delete this.
- how to make webpack recompile on dev mode with cache on?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from webpack.