0、配置PowerShell执行策略
以管理员身份运行PowerShell,运行Set-ExecutionPolicy RemoteSigned
,并输入Y,回车确认
1、安装nvm
- 百度云分享
- 官网直装链接
- nvm的github发行界面下载nvm-setup.exe
- GitCode镜像下载nvm-setup.exe(登录获取下载链接,下载链接还是Github的,唯一的作用就是挑选版本的时候快点)
2、配置nvm
nvm install 18.15.0
安装Node.js18.15.0LTS版
nvm use 18.15.0
启用这个版本
运行cmd /c "nvm -v && node -v && npm -v"
,正常输出版本号说明安装完成
npm config set registry https://registry.npmmirror.com
设置镜像
3、安装VSCode
4、下载文件
- 从SourceForge或neutralinojs - Github发布下载最新的released版本,例如
neutralinojs-v4.10.0.zip
- 从neutralino.js - Github发布下载最新的released版本的
neutralino.js
(多了个点,和第1条不是一个页面)
5、准备一个图标(必须)
- png格式就行,宽高200x200。这里用neutralinojs的头像正好
- (其实我又给这个图加粗了,不然看不清)
6、新建项目helloneutralino
- 创建项目安装neu并使用VSCode打开
md helloneutralino;cd helloneutralino;md bin;md resources\js;md resources\icons; npm init -y;npm install @neutralinojs/neu --save-dev;code .
- 将下载的
neutralinojs-v4.10.0.zip
的所有文件解压缩到bin
目录,例:.\helloneutralino\bin\WebView2Loader.dll
(如果你下载的压缩包里一堆文件夹,那说明下错了,核对文件名重下) - 将下载的
neutralino.js
放在resources
目录的js
文件夹,就像这样:.\helloneutralino\resources\js\neutralino.js
- 将准备的图标放在
resources
目录的icons
文件夹,位置如下:.\helloneutralino\resources\icon\appIcon.png
- 新建文件
.\helloneutralino\neutralino.config.json
,输入以下内容{ "applicationId": "js.neutralino.sample", "version": "1.0.0", "defaultMode": "window", "documentRoot": "/resources/", "url": "/", "enableServer": true, "enableNativeAPI": true, "tokenSecurity": "one-time", "nativeAllowList": [ "app.*" ], "modes": { "window": { "title": "myApp", "width": 500, "height": 300, "minWidth": 400, "minHeight": 200, "icon": "/resources/icons/appIcon.png", "enableInspector": true } }, "cli": { "binaryName": "myApp", "resourcesPath": "/resources/", "extensionsPath": "/extensions/", "clientLibrary": "/resources/js/neutralino.js", "binaryVersion": "4.10.0", "clientVersion": "3.8.2" } }
- 添加前端文件,这里只写一个html,
.\helloneutralino\resources\index.html
,html中的内容为<h1>hello neutralinno</h1>
- 添加一个npm脚本,编辑
.\helloneutralino\package.json
,将test
脚本改为start
脚本,再添加一条build
脚本
改为{ "scripts": { "test": "echo \"Error: no test specified\" && exit 1" } }
{ "scripts": { "neur": "neu run", "neub": "neu build --release" }, }
- 运行
npm run neur
或者npx neu run
7、打包
(打包前将.\helloneutralino\neutralino.config.json
的"enableInspector"
设置为false
,关闭Devtools)
运行npm run neub
或者npx neu build --release
打包结果生成位置:.\helloneutralino\dist
- 一个文件夹:
.\helloneutralino\dist\myApp
- 一个帮你打好的zip压缩包:
.\helloneutralino\dist\myApp-release.zip
清理文件:例如只在Window系统运行,那么只需保留 exe、neu 和 webview2loader.dll 三个文件
8、添加软件图标
- Resource Hacker官网下载软件用来添加图标,在线ICO转换网站用来转换图标,将
appIcon.png
转换为1.ico
(必须叫这个名字,就叫1.ico
) - 将myApp-win_x64.exe拖拽进ResourceHacker软件,标题栏变化说明加载成功
- 点击选项
Add Binary or Image Resource
(菜单选项Action中也有该项,快捷键Ctrl+M
) - 点击按钮
Select File …
,打开1.ico
,点击按钮Add Resource
,点击保存按钮
- 修改完成(确认方法:将myApp-win_x64.exe放进随机数文件夹里,躲避Windows图标缓存)
.\helloneutralino\dist\myApp-release.zip
记得压缩个新的
9、启用Devtools
neutralino.config.json > modes > window > enableInspector,值为 true
10、报错undefined
neu: ERROR Error: ENOENT: no such file or directory, stat '.\undefined'
解决思路:全盘搜索.\helloneutralino\node_modules\@neutralinojs
目录,关键词为configObj
,但凡有代码非常自信的获取属性时,你就质疑质疑再质疑就行了
例如这段代码,肥肠自信嗷?预知了配置文件有cli.resourcesPath
字段
你就写if + error
就行了,如图(utils.error就是他自己实现的console.error,就是字带点颜色而已)
检验是否解决:主动破坏neutralino.config.json
文件
修复前(李在赣神魔):
修复后(终于说人话了):