天天看点

pkg对egg项目打包前言一、pkg是什么?二、使用步骤(win&linux)总结

使用pkg对egg项目进行打包

  • 前言
  • 一、pkg是什么?
  • 二、使用步骤(win&linux)
    • 1.公共部分
    • 2.windows
    • 3.linux
  • 总结

前言

项目部署,没做之前以为很简单,不就跟vue一样build一下就行么,然而并不是这样的,在第一次对egg项目打包使用了各种方法,也都无果,最后还是使用了egg官网的项目部署,上传服务器之后解压完,还是能看见源代码,这就让有些人说,你不能把源代码给放在服务器上啊,我也想啊,于是抽出时间对pkg打包进行了一些时间的研究,有所小成,何为小成,小成也,运行之成功,访问之成功,请求之成功也……

一、pkg是什么?

pkg在这里是协助打包的工具,更多请看pkg.

二、使用步骤(win&linux)

由于服务器的node版本是12的,所以打包就选择了12的版本

1.公共部分

config/config.default.js文件下

const process = require('process'), path = require('path');//这句放在外面
config.static = {
    prefix: '/public',
    dir: process.cwd() + '/public',
};
config.rundir = process.cwd() + '/run';
config.logger = {
    dir: path.join(process.cwd(), 'logs', '/'), 
    outputJSON: false,
};
           

build.js文件(自己创建)

'use strict';
const egg = require('egg');
const workers = Number(process.argv[2] || 	require('os').cpus().length);
egg.startCluster({
  workers,
  baseDir: __dirname,
});
           

package.json文件

"scripts": {
	"build": "pkg . --targets node12-win-x64 --out-path ./mydist  --debug",//加上这句
	...
 },
 "pkg": {
 	"scripts": [
    	 "./app/**/*.js",
         "./config/*.js",
         "./config/*",
         "./app.js",
         "./node_modules/nanoid/**/*.js",
         "./node_modules/nanoid/**/*.cjs"
     ],
     "assets": [],
     "targets": [
         "node12-win-x64"
     ]
 },
 "bin": "build.js",
 
           

2.windows

1.由上面的公共部分可以看出node-12后面是win的,在运行npm run build 之前,先安装一下pkg,命令是npm i -g pkg

2.到打包的目录下,可以直接在vscode中进入终端运行,本人是在资源管理中打开再cmd,两者命令输入的命令相同,

名称.exe

,回车就会运行,

3.可能遇到的问题,就是运行报pkg或者报node的错误,这个问题可是困扰了两三天,由于我的egg版本是4,改为3就可以了。

3.linux

1.把公共部分中的win改为linux,再次打包.

2.运行命令为 ./名称 start

3.可能遇到的问题,在服务器启了,但是访问不到,可以试试把config/config.default.js文件下的hostname改为0.0.0.0如下:

config.cluster = {
    listen: {
      path: '',
      port: 端口号,
      hostname: '0.0.0.0'
    }
  }
           

总结

写了这么多也该有个总结,以上就是本期的内容,只是简单的使用了下pkg,如何打包成win和linux的,以及运行之后所出现问题的介绍,如您有更好的办法,欢迎评论加点赞,我们一同学习……

继续阅读