Хочу использовать плагин webpack в laravel для обфускации JS (https://github.com/javascript-obfuscator/webpack-obfuscator), но не могу настроить сам webpack.
Из документации laravel ясно, что можно использовать метод mix.webpackConfig({ ... }) в webpack.mix.js.
Мой пример: // webpack.mix.js
const mix = require('laravel-mix');
const JavaScriptObfuscator = require('webpack-obfuscator');
mix.webpackConfig({
entry: {
'abc': '/public/js/main.js'
},
output: {
path: '/public/js/',
filename: '[name].js' // output: main.js
},
plugins: [
new JavaScriptObfuscator ({
rotateUnicodeArray: true
}, ['abc.js']),
],
});
При запуске npm run watch выдаёт ошибку, ERROR in Entry module not found: Error: Can't resolve 'main.js'
Воспользовался данным примером и webpack обфусцирует только app.js (resources/js/app.js):
mix.webpackConfig({
plugins: [
new JavaScriptObfuscator ({
rotateUnicodeArray: true
}, ['excluded_bundle_name.js']),
],
});
Как мне обфусцировать js файлы которые требуются?
mix - это отдельная надстройка над webpack, которая перезаписывает entry и output, на значения указанные в:
mix.setPublicPath('path/to/public');
mix.setResourceRoot('prefix/for/resource/locators');
mix.js(src, output);
mix.react(src, output);
В вашем случае, скорее всего, лучше сделать отдельный конфиг для вебпака и настроить отдельную команду в package.json
"scripts": {
...
"obfuscate": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --config=путь/к/вашему/конфигу.js"
...
},
и отдельно запускать npm run obfuscate
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости