logo

我的第一个npm安装包

应公司业务要求,需要制作桌面安装程序。同时也要替代QT,制作QT的安装程序。所以最后我选用了electron制作exe,配合Inno Setup Compiler制作安装包。因为这玩意是我一个人在研究,为了避免我哪天休息不在,还找我打包的情况,我特意写了将这个项目制作成为了一个npm安装包,并附上相应文档,相信还是能看懂的。

1. 将自己的函数导出

src/main.js 是我的主要代码文件。

代码

index.js 是我引用main.js的文件,并导出,也就是整个npm的入口文件了。

1
module.exports = require('./src/main')

build/index.js 是我使用webpack打包的文件。因为需要将第三方插件的引用打包。避免使用引用错误,这里如果纯自己开发的,不引用第三方插件,不需要打包。

1
2
3
4
5
6
7
8
9
10
11
const path = require('path')

module.exports = {
entry: './index.js',
output: {
path: path.join(__dirname, 'dist'),
filename: 'bundle.js'
},
mode: 'development',
target: 'electron-main'
}

3. 将package.json的main改为index.js

1
"mian": "index.js"
1
2
3
4
​"dev1": "npx webpack --config build/index.js",
"pub": "npm run dev1 && npm version patch && npm publish",
"minor": "npm run dev1 && npm version minor && npm publish",
"major": "npm run dev1 && npm version major && npm publish",
1
2
3
npm run pub 打包 更新补丁  并上传npm包
npm run minor 打包 更新小版本 并上传npm包
npm run major 打包 更新大版本 并上传npm包

3. 使用

首先安装依赖。

1
npm i electron-pack

然后引用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const pack = require('electron-pack')

const config = {
width: 1280, // 窗口的宽度
minWidth: 1280, // 窗口最小宽度
height: 960, // 窗口高度
minHeight: 960, // 窗口最小高度
frame: true, // 是否有边框
center: true, // 窗口是否在中心
minimizable: true, //窗口是否可以最小化
maximizable: true, //窗口是否可以最大化
url: 'https://orangecj.com', // 打包地址
isWeb: true, // 是否是网站
openDevTools: true, // 是否打开开发者工具
}

pack(config)

最后运行大功告成。