如何使用nightmare.js库对JS文件进行模糊处理

时间:2018-05-10 20:23:00

标签: node.js encryption obfuscation nightmare

当我在macOS上打包电子应用程序时,由于其局限性,我永远不会使用Nightmare对文件进行模糊处理。我是否需要重新编写整个库,或者有什么方法可以解决这个问题?

1 个答案:

答案 0 :(得分:0)

有一个解决方案。绝对不稳定且未经测试,请自担风险。而且,如果您能找到并修复作为副作用的错误,请随时分享它们:)

我们将使用名为componentDidMount() { let { onDoubleClick } = this.props; if (onDoubleClick) { const rows = document .getElementsByClassName('k-widget k-grid')[0] .getElementsByClassName('k-grid-table')[0] .getElementsByTagName('tbody')[0] .getElementsByTagName('tr'); for (let i = 0; i < rows.length; i++) { rows[i].addEventListener('dblclick', () => onDoubleClick()); } } } 的模块将脚本与pkg捆绑在一起。同样为简单起见,我们将使用node

有一些副作用,但这是第一次使用npxelectron时有效。

考虑以下脚本,

nightmare

这是一个简单的脚本,请转到const Nightmare = require("nightmare"); const nightmare = Nightmare({ show: true }); nightmare .goto("https://example.com") .title() .end() .then(console.log) .catch(error => { console.error(error); }); 并给我标题。

酷!让我们尝试通过example.comnpx使用它。代码是,

pkg

但是,我们遇到了一些令人讨厌的错误,

npx pkg app.js --target 'host'

等等,文件不会运行。

> Warning Cannot include file %1 into executable.
  The file must be distributed with executable as %2.
  node_modules/nightmare/lib/runner.js
  path-to-executable/nightmare/runner.js
> Warning Cannot include file %1 into executable.
  The file must be distributed with executable as %2.
  node_modules/nightmare/lib/frame-manager.js
...

找不到所需的文件,因为它们没有捆绑在一起。我们将使用Error: spawn /home/someone/Desktop/a/electron/dist/electron ENOENT 来获取位于相关文件夹中的数据。

process.cwd()

当我运行它时,它向我展示了更多警告,但那是因为我还没有优化const nodeDir = process.cwd() + "/node_modules/"; // <- Get node modules folder const nightmareDir = nodeDir + "nightmare"; // <-- Get nightmarejs path const electronDir = nodeDir + "electron"; // <-- Get electron path const Nightmare = require(nightmareDir); const electronPath = require(electronDir); const nightmare = Nightmare({ show: true, electronPath // <-- use the specific electron path }); nightmare .goto("https://example.com") .title() .end() .then(console.log) .catch(error => { console.error(error); }); 。然后我跑了,瞧!!

process.cwd()

这可以改进和调整,但我会把它留给你。