需求:
1,vue项目打包为dist后,如何运行dist/index.html?
2,一般可以放到服务器上去运行,可以用nginx,tomcat,xampp
3,但是我们也可以用node的express去搭建一个服务,运行index.html
4,搭建完毕,理论上启动服务(node app.js),即可访问:localhost:8082
5,但是我不想手动输入命令去启动服务,我想把项目弄成一个exe,只要点击exe就能够启动服务,这里有很多方法:pkg、nexe、node-packer、enclose等,这里pkg最简单快捷。
步骤:
1,新建一个项目,生成packge.json:npm init
2,将目标项目打包为dist:npm run build
3,写node脚本启动服务:
安装express:npm install express -g
编辑脚本文件:app.js
//app.js脚本文件
const fs = require('fs');
const path = require('path');
const express = require('express');
const app = express();
app.use(express.static(path.resolve(__dirname, './dist')))
app.get('*', function(req, res) {
const html = fs.readFileSync(path.resolve(__dirname, './dist/index.html'), 'utf-8')
res.send(html)
})
app.listen(8082);
此时目录结构:
4,将项目打包为可执行文件exe
安装pkg:npm install pkg -g
配置package.json,添加以下选项:
"bin": "app.js",
"pkg": {
"scripts": "build/**/*.js",
"assets": "dist/**/*"
},
执行打包命令:pkg -t win package.json
这个时候下载node环境(保证将exe放置到其他无node环境电脑时,仍然可执行),由于下载速度过慢,会一直卡着,可以看出此时下载的目标文件是node-v12.22.2-win-x64
我们中断下载,选择手动下载node-v12.22.2-win-x64文件,下载
将下载好的文件放置到默认文件夹中:C:\Users\ZWJ\.pkg-cache\v3.2\node-v12.22.2-win-x64,并替换名称为:fetched-v12.22.2-win-x64
然后我们再次执行打包命令:pkg -t win package.json
最终生成exe文件,目录结构如下
启动exe,访问地址:localhost:8082即可