You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Express.js构建时包含node_modules,实现类React项目构建效果?

在Express.js中打包依赖的可行方案

完全可以实现类似React项目的构建效果,把所有依赖和业务代码打包到一起,构建后直接运行无需额外处理依赖。下面是三种常用的实现方案:

1. Webpack打包成单文件

Webpack是最常用的打包工具,能把Express代码和所有第三方依赖合并成单个可执行文件:

  • 先安装依赖:
npm install webpack webpack-cli webpack-node-externals --save-dev
  • 在项目根目录创建webpack.config.js配置文件:
const path = require('path');
const nodeExternals = require('webpack-node-externals');

module.exports = {
  entry: './src/index.js', // 替换成你的Express入口文件路径
  target: 'node', // 指定打包目标为Node.js环境
  externals: [nodeExternals()], // 排除Node.js核心模块(无需打包)
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'server.bundle.js'
  },
  mode: 'production'
};
  • 在package.json中添加构建脚本:
"scripts": {
  "build": "webpack --mode production",
  "start": "node dist/server.bundle.js"
}
  • 执行npm run build,dist目录下的server.bundle.js就是包含所有依赖的打包文件,直接运行npm start即可启动服务。

2. Parcel零配置打包

Parcel无需复杂配置,适合快速实现打包需求:

  • 安装Parcel:
npm install parcel-bundler --save-dev
  • 在package.json中添加构建脚本:
"scripts": {
  "build": "parcel build src/index.js --target node --out-dir dist"
}
  • 执行npm run build,dist目录下会生成打包后的文件,直接运行node dist/index.js就能启动服务。

3. pkg打包成跨平台可执行文件

如果需要生成无需Node环境就能运行的可执行文件(支持Windows/macOS/Linux),可以用pkg:

  • 安装pkg:
npm install pkg --save-dev
  • 在package.json中配置打包参数:
"pkg": {
  "scripts": "src/**/*.js",
  "assets": "src/public/**/*", // 如果有静态资源需要打包,这里配置路径
  "targets": ["node18-win-x64", "node18-macos-x64", "node18-linux-x64"]
},
"scripts": {
  "build": "pkg ."
}
  • 执行npm run build,项目根目录会生成对应平台的可执行文件,直接双击或在终端运行即可。

注意事项

  • 如果项目中有动态加载模块、读取本地文件的逻辑,需要确保这些资源被正确配置进打包工具(比如pkg的assets字段)。
  • 生产环境打包时,工具会自动压缩代码、移除无用模块,减少最终文件体积。

内容的提问来源于stack exchange,提问作者Gökhan Gündüz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 08:22:38