欢迎旅行者到此一游
关于PKG将NodeJS与服务端渲染前端项目打包成二进制文件进行部署
ShiinaAiiko.NO.00004·2020年10月18日 · 文章

灵魂质问

为何你会想用二进制文件去部署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
作者:ShiinaAiiko.NO.00004
時間:2020.10.18 06:34
comments0
ShiinaAiiko.NO.00004欢迎旅行者到此一游
推薦
從未發佈過哦
ShiinaAiiko.NO.00004欢迎旅行者到此一游