javascript-obfuscator / webpack-obfuscator

javascript-obfuscator plugin for Webpack
https://github.com/javascript-obfuscator/javascript-obfuscator
BSD 2-Clause "Simplified" License
876 stars 82 forks source link

Test loader doesn't work : Critical dependency: the request of a dependency is an expression #138

Open Pisamad opened 2 years ago

Pisamad commented 2 years ago

With NodeJS v16.13.0 on Windows

$ npm run build && npx webpack --config test/config/javascript-obfuscator-loader.config.js --stats-error-details

> webpack-obfuscator@3.5.1 build
> npx tsc

asset index.js 1.13 KiB [emitted] [minimized] (name: index) 1 related asset
asset index-excluded.js 1.02 KiB [emitted] [minimized] (name: index-excluded) 1 related asset
runtime modules 211 bytes 2 modules
cacheable modules 2.78 KiB
  ./test/input/index.js 1.41 KiB [built] [code generated]
  ./test/input/index-excluded.js 245 bytes [built] [code generated]
  ./test/input/nested.js 1.13 KiB [built] [code generated]
./test/input/ sync 160 bytes [built] [code generated]

WARNING in ./test/input/index.js 1:1127-1152
Critical dependency: the request of a dependency is an expression
    at CommonJsRequireContextDependency.getWarnings (xxx\webpack-obfuscator\node_modules\webpack\lib\dependencies\ContextDependency.js:91:18)
    at Compilation.reportDependencyErrorsAndWarnings (xxx\webpack-obfuscator\node_modules\webpack\lib\Compilation.js:3131:24)
    at xxx\webpack-obfuscator\node_modules\webpack\lib\Compilation.js:2728:28
    at _next2 (eval at create (xxx\webpack-obfuscator\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:25:1)
    at eval (eval at create (xxx\webpack-obfuscator\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:52:1)
    at xxx\webpack-obfuscator\node_modules\webpack\lib\FlagDependencyExportsPlugin.js:385:11      
    at xxx\webpack-obfuscator\node_modules\neo-async\async.js:2830:7
    at Object.each (xxx\webpack-obfuscator\node_modules\neo-async\async.js:2850:39)
    at xxx\webpack-obfuscator\node_modules\webpack\lib\FlagDependencyExportsPlugin.js:361:18      
    at xxx\webpack-obfuscator\node_modules\neo-async\async.js:2830:7
rubixibuc commented 2 years ago

there was a property ignoreRequireImports but it was renamed to ignoreImports. The readme wasn't updated in every location. Try setting that to true, ignoreImports: true

https://github.com/javascript-obfuscator/javascript-obfuscator/commit/faaab45c6aeabf6d6c2ced6f9d53ec5a54871d7b

rasgo-cc commented 1 year ago

@rubixibuc you just made my day, thank you. Just for reference, I'm using:

"webpack": "^5.75.0",
"webpack-obfuscator": "3.3.2"
"javascript-obfuscator": "^4.0.0",

with Electron.

And if I don't set ignoreImports: true I get random "cannot find module" errors when starting the app.