Nativefier将web页面打包为.exe文件中遇到的问题记录

node.js的安装

直接官网下载,最好不要安装在C盘一直下一步安装好就行了,没什么特殊的地方
地址:http://nodejs.cn/download/
直接百度。
安装好以后进入cmd验证一下:

node -v
npm -v

在这里插入图片描述
npm其他的配置就省略了,可以自己百度,都很详细,主要说一下Nativefier的打包过程

用npm安装Nativefier

npm install nativefier -g

安装的时候可能会报一个警告: 类似core-js@2.X < core-js@3.X

不过不影响使用,只要安装完成就行了:

简单的使用Nativefier

nativefier "www.baidu.com"

执行这一步以后就开始打包当前的网址了,问题就来了。。。

Downloading tmp-3817-0-electron-v5.0.10-win-x64.zip
Error: getaddrinfo ENOTFOUND github-production-release-asset-2e65be.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com:443
{ Error: getaddrinfo ENOTFOUND github-production-release-asset-2e65be.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com:443
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:57:26)
  errno: 'ENOTFOUND',
  code: 'ENOTFOUND',
  syscall: 'getaddrinfo',
  hostname: 'github-production-release-asset-2e65be.s3.amazonaws.com',
  host: 'github-production-release-asset-2e65be.s3.amazonaws.com',
  port: 443 }
  packaging [========================================          ] 79%

执行到79%就报错了,因为在Nativefier运行之前,他需要下载一个electron-5.X-win32-64类似的zip文件,地址是:
http://github-production-release-asset-2e65be.s3.amazonaws.com
结果是这个是外网的地址,国内不能直接连,所以下载打包工具失败,直接到79%就结束了,百度了很多地方都没有人提到这个问题,也不知道大家都是怎么弄得,反正我真的是怎么试都不行啊,太难了

两种解决办法

  1. 第一种方法,修改本地的hosts文件,这个文件位置一般不会改变

 windows系统:C:\Windows\System32\drivers\etc 在hosts文件最下面加一行:

 52.216.204.187 github-production-release-asset-2e65be.s3.amazonaws.com

如果这个ip的地址很慢,也可以试一试其他的ip不过速度基本都很慢,在20K左右,而且容易断线,一旦断掉就得重新下载,一个58M的文件,可以下载到你崩溃,真的,运气好的就能下载下来,这个文件只需要下载一次就行了:
https://site.ip138.com/github-production-release-asset-2e65be.s3.amazonaws.com/

2.第二种方法,既然是外网的,只能咳咳,
反正自己找个梯子把东西下载下来就行了

还有个问题

说是全局安装的 npm install nativefier -g这样子,实际上直接在cmd用不了,也不是很懂,就去node的安装目录下调用这个nativefier,我的在E盘,先进入npm的目录:在这里插入图片描述

1. 执行这个:  nativefier –name "baidu" "https://www.baidu.cn/"
2. 英文的引号,底下的是以前执行的,不要在意这么多细节,,还有就是不能用中文当名字,不然会变成默认的名字
"APP"

在这里插入图片描述
看到这里不要怀疑,没错,已经打包完成了,具体为啥显示个61%什么的,我也不是很清楚。
打包的文件就在你执行 nativefier –name “baidu” “https://www.baidu.cn/”
这个命令的目录下:
比如我是在E:\nodejs\node_global\node_modules\npm这里执行的,文件就再这个目录下

最后再来个详细的配置吧

nativefier –name “blog” “https://www.leixuesong.cn/”

nativefier –icon <path>:设置图标
icon参数 
Windows环境下为.ico文件
Linux下为.png
Mac下 icon参数可以是a .icns或.png文件

--app-copyright :应用的版权信息

-p, --platform <value>:指定输出不同系统的应用,可选参数linux、windows、osx。

-m, –show-menu-bar:指定是否应该显示菜单栏。

--disable-context-menu:禁用上下文菜单

--disable-dev-tools:停用Chrome开发者工具

--clear-cache:防止应用程序在两次启动之间保留缓存。

--tray:托盘,防止用户点击右上角关闭按钮后直接关闭程序,而是缩小到右下角的托盘中。

--always-on-top:总是在最前面显示。

--maximize:开始的时候最大化。

--full-screen:使打包的应用全屏启动。

--app-version <value>:应用程序的发行版本。

–width <value>:打包应用程序的宽度,默认为1280px。

–height <value>:打包应用程序的高度,默认为800px。

–min-width <value>:打包应用程序的最小宽度,默认为0。

–min-height <value>:打包应用程序的最小高度,默认为0。

–max-width <value>:打包应用程序的最大宽度,默认为无限制。

–max-height <value>:打包应用程序的最大高度,默认为无限制。

–x <value>:打包的应用程序窗口的X位置。

–y <value>:打包的应用程序窗口的Y位置。

-a, --arch <value> 处理器架构

示例:

 nativefier  
	--arch "x64" 
	--platform "windows" 
	--icon D:\temp\favicon.ico //一定要有图片,不然会报错
	--name "weixin" 
	"https://mp.weixin.qq.com/" //网站地址
	--maximize	//开始最大化
	--always-on-top //最前端显示
	--clear-cache  //防止缓存
	--app-copyright "在这里填自己的就行了,也没找到在哪里显示"
	--app-version 1  //这里好像只能填数字,不过也没啥用,没找到在哪里显示
	--show-menu-bar //英文的,感觉没啥用,还挺丑
	--disable-dev-tools
	--tray //比较有用的
	D:\temp\  //最后指定文件的输出目录
	
	//还有就是不能按上面的这样子,因为cmd不能换行执行一句,会出错...
	
	nativefier --arch "x64" --platform "windows" --icon D:\temp\favicon.ico --name "weixin" "https://mp.weixin.qq.com/" --maximize --app-copyright "微信公众号" --app-version 1 --show-menu-bar --disable-dev-tools --tray D:\temp\

在这里插入图片描述
大概就是这样子额,没办法刚做好的web项目客户又要求是本地桌面应用程序打开,不能用浏览器,我丢你老Emmmmm

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值