【HAVENT 原創】eggJs + ncc 製作壓縮 js 包

下面是使用 ncc 製作壓縮 js 包的流程(注意:eggjs 壓縮後會生成 7 個 js 文件,而不是 1 個)。

一、安裝 ncc 依賴包

npm i -g @vercel/ncc

二、根目錄新建 build-pkg.js 文件,可以在這裏配置啓動參數

'use strict'
console.log(`BaseURL: ${__dirname}`)

const egg = require('egg')
let workers = 1
let port = 8001 // 默認端口

// 啓動命令中獲取指定的參數
process.argv.forEach((val, index) => {
  console.log(`${index}:${val}`)
  if (val.indexOf('--port=') > -1) {
    port = val.replace('--port=', '')
  } else if (val.indexOf('--workers=') > -1) {
    workers = val.replace('--workers=', '')
  }
})
egg.startCluster({
  env: 'prod',
  workers,
  port: port,
  baseDir: __dirname
})

三、修改根目錄的 package.json 文件

{
  "name": "egg-client",
  "version": "1.1.0",
  "private": true,
  "scripts": {
    "start": "egg-scripts start --workers=1 --title=egg-client --port=8001 --env=prod",
    "stop": "egg-scripts stop",
    "ncc-linux": "ncc build build-pkg.js -o dist"
  },
...
}

四、執行打包命令

# linux
npm run ncc-linux

五、啓動、停止和注意事項

啓動和停止命令和原來保持一致 npm run startnpm run stop 除了 dist 目錄生成的內容,還需要把 package.json 文件和 node_modules 目錄拷貝到 dist 目錄才能正常運行 ncc 只是單純壓縮打包 js,部署的時候 node 環境還需要自行安裝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章