跳到主要内容
CNode

rollup 如何处理动态的 require 呢?

问答
DdaGaiGuanYu发布于 4 年前最后回复 4 年前
1048680

我现在用 rollup 打包我的应用。 我的应用依赖 Knex,而 Knex 支持 mysql、sql server、oracle 等多种数据库, 因此 Knex 的代码中有 require('tedious')(sql server 的依赖)、require('oracledb')(oracle 的依赖)。 而我只需要 mysql,也只安装了 mysql。 而 rollup 打包后的文件,在最开始的地方就把 tedious、oracledb 等都导入了一遍……

问题复现 https://github.com/daGaiGuanYu/temp/tree/knex-rollup

查看回复

回复 (10)

Z
zhennann#104 年前
引用 daGaiGuanYu@zhennann 谢谢,不太适合,我在做的是一个 vscode 插件,无聊的时候可以试一下

@daGaiGuanYu 如果要采用webpack打包node js代码,我提供的链接可以算是最佳实践之一了。你可以新建一个CabloyJS项目,然后再新建一个业务模块,执行模块后端代码的打包指令。要实现的效果其实与你所说的vscode插件场景还是比较契合的。参见:模块编译与发布

Z
zhennann#84 年前
D
daGaiGuanYu#74 年前

谢谢各位,rollup 应该确实不合适
webpack 应该可以,但决定试试新东西,用 esbuild。

W
waitingsong#64 年前
引用 daGaiGuanYu@waitingsong 可以看一下你的配置文件吗

@daGaiGuanYu rollup 一般用于 npm 模块打包,项目打包一般是 webpack 或者直接用 typescript 的 tsc。 这个配置用于 npm 模块: 先用 tsc 把 ts 编译到为 js 文件,然后调用 rollup 打包为 cjs/esm 双输出 rollup.config.js

D
daGaiGuanYu#44 年前
引用 i5ting服务端为啥用rollup打包呢?

@i5ting 我在做一个 vscode 插件,用到了 knex

如果是做服务端,应该用啥打包啊

I
i5ting#34 年前

服务端为啥用rollup打包呢?

W
waitingsong#14 年前

rollup 打包怎么会深入到 knex 模块里面去呢? 我也用 rollup 和 knex,没遇到这种情况

参与回复

登录后即可参与回复。登录