我不知道你们都是怎么做的,我用vscode就是了
先 nodejs.org 下载一个吧,x64吧,以后就都是这个,
安装时提示你需要额外编译py或c++等环境的工具,选装
https://github.com/nodejs/node-gyp#on-windows
当然编译成品什么跨系统都是可以的,不用惊呆了。
其实就是编写js脚本。我们称之为脚本。
npm init 先初始化一个项目,在工程目录下执行
npm install 模块名称 其实吧都是模块组成的玩具
他的模块,有些nodejs本身,有些是C++写的,有些Py写的。
你可以单独安装,其中参数 -g 表示全局,所有工程都可以用。
--save 安装到当前工程中,--save-dev 开发时有用,比如一些打包工具。
另外,你可指定版本,比如 npm install electron@16.0.6 --save-dev
当然你也可以在package.json中 dependencies 定义好模块和版本,类似代码
{
"name": "xxxhelper",
"version": "1.0.0",
"description": "tgsoft",
"main": "main.js",
"scripts": {
"start": "electron .",
"dist": "electron-builder --win --x64"
},
"author": "",
"license": "ISC",
"dependencies": {
"bytenode": "^1.3.4",
"socket.io": "^4.3.2"
},
"devDependencies": {
"electron": "^16.0.6",
"electron-builder": "^22.14.5"
},
"build": {
"appId": "com.tegong.xxxhelper",
"copyright": "tegong",
"productName": "xxxhelper",
"directories": {
"output": "build"
},
"dmg": {
"window": {
"x": 100,
"y": 100,
"width": 800,
"height": 600
}
},
"win": {
"icon": "image/icon.ico",
"target": "zip"
},
"linux": {
"icon": "image/icon.ico"
},
"files": [
{
"filter": ["**/*","!index.js"]
}
]
}
}
你要加密代码,方式有很多,混淆、assemblyscript或者字节码,我这里选字节码
用的模块是npm install bytenode --save
怎么加密指定的代码,一是用命令行
bytenode -c index.js 编译`index.js`为`index.jsc`.
bytenode -c index.js app.js 编译多个指定文件.
bytenode -c src/*.js 编译所有src目录中的`.js`文件.
bytenode -c *.js -l %.load.js 创建 `filename.load.js` 加载字节码文件
测试执行字节码文件
bytenode script.jsc [附加参数]
当然也可以在main.js中动态加密,以index.js为例
require('bytenode').compileFile({
filename: './index.js' //它会在源文件同一目录下生成同名jsc后缀的字节码文件
});
然后是打包成dmg或exe文件的问题了
以前的人是用exectron-packager 或者 nexe等。
现在基本上是使用exectron-builder,模块安装
npm install electron --save-dev
npm install electron-builder --save-dev
在package.json定义,前面例子有
"scripts": {
"start": "electron .",
"dist": "electron-builder --win --x64"
},
然后执行 npm run dist 即可。
上面的filter的特别说明,刚前面我们说过,字节码加密,那原文件就不要打包了
所以做了特别的过滤说明,比如index.js
"files": [
{
"filter": ["**/*","!index.js"]
}
先说到这里。