我想混淆我的代码,但不使用Firebase导入代码使用webpack和js-模糊插件。混淆的防火墙代码几乎加倍其大小(超过500 its )!
我尝试了很多事情,比如将ignoreRequireImports设置为true。但这似乎只适用于需求进口,而不是树状摇摆不定的进口。
我还尝试了// javascript-混淆器:禁用导入行周围的注释,但这也没有解决问题.
这是我的webpack.config.js:
const path = require('path');
var WebpackObfuscator = require('webpack-obfuscator');
module.exports = {
mode:'production',
devtool:'source-map',
entry: { //'./src/firebaseConfig.js',
//firebaseConfig:'./src/firebaseConfig.js',
'scripts/signIn':'./src/signIn.js'
},
plugins:[
new WebpackObfuscator({rotateStringArray: true, reservedStrings: [ '\s*' ]}, [])
],
module:{
rules:[
{
enforce: 'post',
use: {
loader: WebpackObfuscator.loader,
options: {
rotateStringArray: true,
reservedStrings: [ '\s*' ],
ignoreRequireImports:true
}
}
}
]
},
output:{
path:path.resolve(__dirname,'public'),
filename:"[name].bundle.js"
},
watch:true
}以下是我的源代码js文件代码:
从“firebase/app”导入{ initializeApp };
import {
getAuth
}from 'firebase/auth';
import {
getFirestore,
collection,
getDocs
} from 'firebase/firestore';
initializeApp(firebaseConfig);
const db = getFirestore();
const auth=getAuth();
const colRef=collection(db,'books');
console.log(test);
getDocs(colRef).then((snapshot)=>{
let books =[];
snapshot.docs.forEach((doc)=>{
books.push({...doc.data(),id:doc.id})
})
console.log(books);
}).catch(err => {
console.log(err);
})谢谢!
发布于 2022-10-05 16:15:19
您可以尝试添加测试条件标记(针对特定文件)或添加排除标记以限制混淆任务的范围,请参见下面的示例:
module: {
rules: [
{
test: /\.js$/,
enforce: 'post',
use: {
loader: WebpackObfuscator.loader,
options: {
rotateStringArray: true,
}
},
exclude: /node_modules/
},
]
}https://stackoverflow.com/questions/71194111
复制相似问题