【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 环境还需要自行安装

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