关于PKG将NodeJS与服务端渲染前端项目打包成二进制文件进行部署
灵魂质问
为何你会想用二进制文件去部署Node项目?
如果涉及到分布式部署的时候、二进制文件部署将不受环境限制、很适合生产环境试验。
你是何时开始思考使用PKG打包Node项目的?
我在个人项目 微服务后端框架MeowYeah 开发期间、突然想到分布式的时候、每个服务器都安装各种环境会不会造成巨大的运维成本?
于是就开始构思NodeJS的二进制文件了。
你为何想着用PKG打包前端项目呢?
如果是静态网站、那还是算了。
但如果是类似于Nuxt.js这种服务端渲染那就可以使用PKG打包了。
和NodeJS项目类似。
服务端渲染框架依然是基于Node环境、分布式部署会因为环境问题而变得繁琐。
将Nuxt.js项目打包成二进制文件的原因也是如此。
MeowYeah微服务Node项目的演示DEMO
安装PKG
npm i -g pkg
package.json 配置文件
因为我这个项目是TS项目、所以需要先将TS打包成JS
"pkg": { "assets": [ "./build/app/MeowYeah-Node/protos/*", "./node_modules/**/*", "node_modules/blessed/**/*" ] }, "scripts": { "build": "tsc", "pkg": "npm run build && pkg ./build/app.js -o ./pkg/meowyeah && ./pkg/meowyeah", },
在这里新增一个字段 pkg
而里面的assets则主要是静态文件目录。也就是非js文件的目录。比如说grpc所使用的proto文件等。
而pkg命令里。前面那个则是输入源、 后面这个则是输出源
而运行的时候直接执行 ./pkg/meowyeah
运行打包运行项目
打开终端,cd到该根目录下
npm run pkg
打包完成!
运行成功
aiiko@192 PSS-MoreThink-Node-Center % npm run pkg > pss-nodejs@1.0.0 pkg ./Node-Center > npm run build && pkg ./build/app.js -o ./pkg/meowyeah && ./pkg/meowyeah > pss-nodejs@1.0.0 build ./Node-Center > tsc > pkg@4.4.9 > Targets not specified. Assuming: node12-macos-x64 _______________________________________________________________ _ _ _ _ / / /| | / / / ---/| /-|----__----__-----------|---/-----__----__---/__---/--- / |/ | /___) / )| /| / | / /___) / ) / ) / _/__/___|_(___ _(___/_|/_|/_____|_/____(___ _(___(_/___/_o_____ / (_ / ---- Shiina Aiiko
很简单吧!
MeowYeah微服务Node项目的演示DEMO
等老娘我研究了再说!
哼唧~
相关注意事项
PKG不支持动态路由加载
类似于动态加载的可以放弃了。PKG只支持常量地址的模块引入。变量地址不支持。因为PKG不知道这里面是啥。
静态文件必须添加到配置文件的目录数组里
比如说html、css、js、proto等静态文件。并且地址最好是绝对地址。
或者同级目录的地址。
日本千叶县
雨
Redmi K30 Speed 5G
like
dislike
comment
1975
comments0
ShiinaAiiko.NO.00004欢迎旅行者到此一游
推薦
從未發佈過哦