javascript-obfuscator / javascript-obfuscator/webpack-obfuscator
process variable is undefined when use DefinePlugin
- Lenguaje dominante
- TypeScript
- Estrellas
- 928
- Forks
- 92
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
I wrote about this bug in [another issue](https://github.com/javascript-obfuscator/javascript-obfuscator/issues/863), but it is already closed, it would probably be more correct to make a separate issue in a more suitable repository for this.
I made a [minimal example](https://github.com/Katarn/obfuscator-process-bug).
Just run `npm ci && npm run build`. After that, in the `dist` directory, you will see the `main.js` file. Open it in a code editor and you will see something like:
```js
....shift())}}(n),process[r(309)][r(311)]&&console[r(302)](r(311))})();...
```
Of course, the `process` variable is `undefined`. Moreover, it should not be in the code, it should either be replaced with `true` (according to [this line](https://github.com/Katarn/obfuscator-process-bug/blob/master/webpack.config.js#L22)), or, with "smart optimization", the `if (...)` check block should not exist at all, since it will always be executed.
Then you can uncomment these [two lines](https://github.com/Katarn/obfuscator-process-bug/blob/5edcd56c5f2f18b6068e8459f7be075fc9691bb5/webpack.config.js#L14-L15) (not necessarily at the same time, you can uncomment them separately) and see how the code is generated in the `main.js` file.
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Empieza por la webpack.config.js del ejemplo mínimo, especialmente por la configuración de DefinePlugin alrededor de las líneas 14-15 y 22, y luego ejecuta npm ci && npm run build. Inspecciona dist/main.js con las opciones habilitadas y compara si process se reemplaza o se elimina mediante optimización como se espera.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- typescript, webpack
- Área
- build-system
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100