1
ysc3839 2023-09-28 13:28:21 +08:00 via Android
不处理,一般不缺这点空间。真要处理的话建议用 pkg 打包成单个文件
|
2
bianhui 2023-09-28 13:30:35 +08:00
pnpm
|
3
LandCruiser 2023-09-28 13:44:43 +08:00
基本没法弄,我最近在玩 nestjs ,这个也是不能打包,或者说打包完了有问题。直接源码部署的。好像 python 也是这样的,没有打包的概念,源码部署。只能说对服务端要求高,还是上传统的 java
|
4
BeautifulSoap 2023-09-28 13:51:25 +08:00 via Android
nodejs 当然能用 webpack 。。。。。。。
|
5
zackzergzeng OP @LandCruiser python 我可以将依赖包直接全局安装,然后文件中就可以直接引入了,我按照这个概念是这在 nodejs 这里套用,发现找不到依赖路径,所以不知道我的思路对不对,还是有什么遗漏的地方
|
6
zackzergzeng OP 补充一下,我的项目是一个命令行运行,用 d3 和 jsdom 生成 png 图片的工具
|
8
lbunderway 2023-09-28 15:55:44 +08:00
pnpm 小一些,但是不应该全局安装,
|
9
624144061 2023-09-28 16:55:27 +08:00
我用 docker 部署的,源码不用装 node_modules
|
10
zackzergzeng OP @estk 这个看起来不错,能甩掉 node_modules
|
11
zackzergzeng OP @624144061 这是什么原理?
|
12
renmu123 2023-09-28 18:08:54 +08:00
用 pkg 直接打包成一个命令行程序就好了
|
13
a632079 2023-09-28 18:20:14 +08:00
直接打包成 Docker 即可,或者使用打包器,打包成单一入口的 js ,只需要 node 或者 边缘计算节点的 js runtime 就能跑了
|
14
pengtdyd 2023-09-28 18:48:52 +08:00
pnpm + 1
|
15
BugCry 2023-09-29 00:47:14 +08:00 via Android
esbuild 打包成单文件 js
|
16
IvanLi127 2023-09-29 02:52:04 +08:00 via Android
都用脚本语言了,就不要在意这个了。。。
|
17
Projection 2023-09-29 10:33:00 +08:00 1
pkg 似乎还不支持 ESM ,然而很多包现在只提供原生 ESM 支持了。
如果是个人项目,用 Bun 就很方便: `bun build --compile` 可以选择将运行时和代码一起打包成单个可执行文件,就像 pkg 一样; 也可以用 `bun build` 将源代码打包为单个 JS 文件,部署好 Bun 就可以直接运行了。 |
18
SchneeHertz 2023-09-29 14:42:44 +08:00
考虑下 npx ,写完直接发 npm 上,用户安装时会自动处理依赖
|
19
zhennann 2023-10-01 17:06:12 +08:00
参见:NodeJS 后端编译打包全攻略: https://cnodejs.org/topic/5dfa4f02ba8f6d46c4ede156
|
20
humbass 2023-10-03 18:48:20 +08:00
@Projection bun.js 如何使用 npm 包?
|
21
Projection 2023-10-03 19:37:19 +08:00 1
|
22
bobguo 2023-10-04 09:56:24 +08:00 1
如果依賴都是純 JS 模塊,用 esbuild 打包是最理想的了,速度快,默認的 iife 目標格式兼容性很好
如果需要依賴一些帶二進制的模塊,也可以用 esbuild 打包,但是 1. package.json 裏面要區分 dependence 和 devDependence ,綫上只安裝 dependence 即可 2. esbuild 注意要配置這些二進制模塊到 external 裏 npm install --production 然後,用 docker 打包下,上綫就沒什麽特別要部署的了 |
23
humbass 2023-10-04 16:08:30 +08:00
@Projection 多谢! 用 bun 跑了下 斐波那契数列,非常接近 c 编译出来的速度,神奇
|
24
asen001 2023-10-11 14:11:14 +08:00
可以试试 ncc ,直接打包成一个 js 文件
|
25
nodejsexpress 2023-10-24 09:22:57 +08:00
这个年代, 一般不会缺这点空间吧.
|