场景:比如需要部署在客户的服务器上,但不想让客户直接看到明文的代码,就需要打包。
一、先全局安装pkg
npm i -g pkg
二、下载打包所需的 node-v16.16.0-linux-x64 和 node-v16.16.0-win-x64
三、放到pkg的缓存目录
windows:C:\Users\whh\.pkg-cache\v3.4,(把whh替换为你的电脑登录的用户名)
linux:cd $HOME/.pkg-cache/v3.4
如果你的没有fetched-v16.16.0-linux-x64,那么就把下载的node文件名前面的node改为fetched再放入
linux:可以先把下载的文件放在服务器的任意非隐藏目录
然后在复制到隐藏的目录里。
先进入到 cd $HOME/.pkg-cache/v3.4,然后再复制
linux的复制命令:cp /root/fetched-v16.16.0-linux-x64 ./
四、然后配置package.json文件
{
"name": "node",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"dev": "nodemon index.js",
"pkg": "pkg --target node16-linux-x64 -d . --output ./dist"
},
"author": "",
"license": "ISC",
"dependencies": {
"dayjs": "^1.11.3",
"express": "^4.18.1",
"moment": "^2.29.4",
"multiparty": "^4.2.3",
"mysql": "^2.18.1",
"nodemon": "^2.0.20",
"prettier": "^2.8.8",
"winston": "^2.4.6"
},
"bin": {
"credit-recognition-system": "index.js"//指定入口文件,就是那个启动服务器的js文件
},
"pkg": {
"scripts": [
"./utils/*.js",//因为pkg不会自动打包js文件,这里配置的是存放js的目录
"./origin/*.js",
"./apis/**/*.js"
],
"targets": [
"node16-linux-x64"//这里指定的是linux包
]
}
}
五、开始打包
npm run pkg
windows:完成图
linux:完成图
六、查看目录
七、运行文件
windows:直接双击.exe文件就可以
linux:给dist
目录添加执行权限 chmod +x dist 然后直接./dist或者sh ./dist
八、结束!
赏个赞呗!