我有一个现有的 Node js 后端,需要在客户本地部署。我想在传递给客户端之前编译/混淆代码。
我不知道它是否“可编译”。
但至少我只想将单个合并代码放入 index.js
文件(其他 javascript 文件全部删除)中,并在传递给客户端之前对其进行混淆。
是否有任何现有的 npm 模块可以做到这一点,以及混淆后的代码与原始代码一样工作的可靠性如何。
当您需要传递可在客户端部署的现有 Node js 源代码时,您的公司/处理方式是什么。
我更关注可以自动化整个过程的现有库。 例如: npx run obfuscate-code --entrypoint.js (它将搜索来自 Node js 的所有导入/需要并编译所有内容。
Folder structure is as follow.
home
- controllers (folder)
- file1.js
- file2.js
- languages (folder)
- en.js
- services (folder)
- service1.js
- service2.js
- index.js (entry point)
最佳答案
您可以使用 PKG(npm 包)创建可执行文件,请参阅 => https://github.com/zeit/pkg
或者 webpack 如果你想制作一个最小化的单个 js 文件。
// webpack.config.js
const nodeExternals = require('webpack-node-externals');
module.exports = {
mode: 'production',
target: 'node',
externals: [nodeExternals()],
entry: {
'build/output': './src/index.js'
},
output: {
path: __dirname,
filename: '[name].bundle.js',
libraryTarget: 'commonjs2'
},
module: {
rules: [
{
test: /\.js$/,
use: {
loader: 'babel-loader',
options: {
presets: [
['env', {
'targets': {
'node': 'current'
}
}]
]
}
}
}]
}
};
通过使用nodeExternals
,您不会将外部依赖项放入主js文件中,而是引用node_modules。
您可以使用 npm run ...
来使用这两个解决方案,方法是将它们添加到 package.json 中的脚本部分
关于javascript - 编译或混淆 Node js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61837125/