nw.js打包网页成桌面项目(vue2项目)

第一步:下载nw.js
nw.js官网: https://nwjs.io/
创建vue2项目

如果你还没有安装Vue Cli,可以使用npm或yarn来安装:

npm install -g @vue/cli
# OR 
yarn global add @vue/cli

创建一个vue2项目(选择vue2即可)

vue create vue2     //此处vue2为项目名, 可自由取名

第三步: 修改vue.config.js
添加一行(不同的构建工具这里有所不同,但都是修改成‘./’):

publicPath: "./"

图片7.png
第四步: 保存后打包vue2项目
第五步: 新建文件夹package.nw
图片8.png
第六步: 将 vue2/dist/ 目录下的文件拷贝到 package.nw 中
第七步: 在package.nw目录下新建package.json文件, 编写如下代码
图片9.png
第八步: 将package.nw目录拖至 nw.exe 上(这就是运行),出现以下结果表示没问题
图片10.png

第九步: 生成 vue2.exe

cmd /c copy /b nw.exe+package.nw vue2.exe

图片11.png

dir vue2.exe

图片12.png

图片13.png

Start-Process -FilePath ".\vue2.exe" -Wait -NoNewWindow -RedirectStandardOutput "output.log" -RedirectStandardError "error.log"

图片14.png

图片15.png
Get-Content output.log
图片16.png
Get-Content error.log
图片10.png
双击vue2.exe出现第八步的结果表示成功
图片17.png

第十步: 制作下载程序

制作前需要下载一个软件 --> InnoSetup
我下载的网址: https://pc.qq.com/detail/13/detail_1313.html
图片18.png
图片19.png

图片20.png

然后一直next
然后弹出两个框,点击是,然后选择文件路径

图片21.png
图片22.png
这个就是安装包

图片23.png
安装完后
图片24.png
双击运行

源码包
源码下载

作者:袁俊伟

网页项目打包成桌面exe electron

1.在根目录创建一个js文件,里面配置如下,下面的包按照给的下载

const express = require('express');
const http = require('http');
const path = require('path');
const { app, BrowserWindow } = require('electron');
const isDev = require('electron-is-dev')
const server = express();
server.use(express.static(path.join(__dirname, 'dist')));
http.createServer(server).listen(3000, '127.0.0.1', () => {
  console.log('本地服务启动:http://127.0.0.1:3000');
});
function createWindow() {
  const win = new BrowserWindow({
    width: 1000,
    height: 700,
    webPreferences: {
      javascript: true,
      nodeIntegration: true,
      contextIsolation: false
    }
  });
  // 加载 HTTP 服务的页面(http:// 协议,无 file:// 限制)
  win.loadURL('http://127.0.0.1:3000');
  win.webContents.openDevTools();
  // 打开开发者工具(开发环境)
  if (isDev) {
    win.webContents.openDevTools()
  }
}
// 应用就绪后创建窗口
app.whenReady().then(createWindow)
// 关闭所有窗口时退出应用
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})
app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) {
    createWindow()
  }
})

2.Package.json里面的配置如下
图片1.png

3.下载需要的包,

npm install electron electron-builder --save-dev,npm install --save-dev electron@37.4.0 

下载时如有报错
设置 Electron 镜像为淘宝源并创建.cnpm文件设置镜像源就能下载了 :

npm config set electron_mirror https://npmmirror.com/mirrors/electron/

图片2.png
或者用这个命令

set ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/
npm install electron

4.运行打包命令时,先运行

npm run build

打包成dist文件,再运行

npm run electron:build

进行打包,打包过程中如果报错,先用管理员运行vscode,然后下载一个7-zip,因为打包运行时需要7-zip来解压文件

5.打包完后myapp829 Setup0.1.0.exe就是桌面应用,win-unpacked文件夹里面是已经下载好的,可以直接打开运行看看打包的应用
图片3.png
图片4.png

6.这是打包好并运行的桌面应用
图片5.png

代码部分
软件下载

文章作者:程恒烽

MySQL 数据库允许外部IP访问

1首先通过密码登录
2.

use mysql;

select host,user from user;

update user set host='%' where user ='root';

FLUSH PRIVILEGES;

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;

50bf505b-ad42-4eb8-8933-4ac3d9654e1e.png

之前也说过如何操作内容基本一致。最后条SQL就是在MySQL数据库中为root用户授予所有权限

方案2: https://www.172u.cn/news/671.html

HTTP 请求头方式(application/x-www-form-urlencoded 或者application/json;charset=utf-8)

设置请求头 封装axios的时候,给它全局设置 application/x-www-form-urlencoded 或者application/json;charset=utf-8

axios.defaults.baseURL = 'https://www.172u.cn';
axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

或者jQuery 中 $.ajax application/x-www-form-urlencoded 或者application/json;charset=utf-8

$.ajax({
   type: 'POST',
   contentType: 'application/json;charset=utf-8', // 发送的数据类型
   dataType: 'json',   // 接收的数据类型
   url: 'http://www.172u.cn',
   data: JSON.stringfy(formData),
   success: function (res) {
      console.log(res.data)
   }
}) 

nginx 分布式方案

配置这情况默认就会自动分流到这2台服务器上

   server 127.0.0.1:8080;
   server 127.0.0.2:8080;
    # 反向代理配置
    upstream server_list{
       # 这个是tomcat的访问路径
       server 127.0.0.1:8080;
       server 127.0.0.2:8080;
    }
    server {
            listen       80;
            server_name  localhost;
    
            location / {
                root   html;
                proxy_pass http://server_list;
                index  index.html index.htm;
            }
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }

2.weight 权重
权重越高分配的越多,下面就是5是最多的。

# 反向代理配置
upstream server_list{
server 127.0.0.1:8080 weight=5;
server 127.0.0.2:8080 weight=1;
}

3.ip每个请求按访问ip的hash值分配
这样就不会跳转到其他服务器会固定到一个服务器上

upstream backserver { 
        ip_hash; 
        server 127.0.0.1:8080; 
        server 127.0.0.2:8080; 
}

4.least_conn 按哪个服务器最少访问就去访问

upstream backserver { 
    least_conn;
        server 127.0.0.1:8080; 
        server 127.0.0.2:8080; 
}