天天看點

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的,以及運作之後所出現問題的介紹,如您有更好的辦法,歡迎評論加點贊,我們一同學習……

繼續閱讀