javascript - 静态 typescript 类方法树是否可以通过汇总摇动?

标签 javascript node.js typescript rollupjs

假设我们创建一个带有两个静态方法的 typescript 类:

export class Utilities {
      static methodFoo() { return 'foo'}
      static methodBoo() { return 'boo'}
} 

后来有人从 npm 包 @scope/utilities 导入了我们的类,并且像这样只使用了 methodFoo

import {Utilities} from '@scope/utilities';

let pityTheFoo = Utilities.methodFoo();

如果我们使用 rollup 将上面的内容发布为优化的/“treeshaken”模块,rollup 是否能够剃掉 methodBoo

最佳答案

截至 2019 年 11 月,不,静态方法未经过 treesaken。 Rollup Issue #349为它筹集资金,其中 even the tool creator was sympathetic to having the feature .问题closed in an auto-cleanup由于此后不活动。

至于测试行为,您可以自己轻松完成:只需使用从未使用过的静态方法构建一个类,使用 rollup.js(或 angular 或包含 rollup 的东西)并检查输出。

我正在为此苦苦挣扎,因为你将如何构建 treeshakable 实用程序?就像 rxjs 那样做,然后单独导出所有函数?然后你会失去所有的命名空间,这对我来说似乎也不理想......我猜你的问题源于那个想法?

据我所知,您目前要么导出普通函数,要么您的实用程序不会被摇树。

关于javascript - 静态 typescript 类方法树是否可以通过汇总摇动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49579600/

相关文章:

javascript - Jquery 验证器与二维数组

javascript - 语法错误 : Token '{' invalid key at column 2 of the expression [{{id}}] starting at [{id}}]?

javascript - vue-material stepper 提交

python - 与 Node.js 服务器应用程序通信

javascript - 非法 break 语句 (Node.js)

node.js - Mongoose,如何使用两个或条件执行 find()

PHP 填充按钮 onclick 问题

typescript - 未捕获的类型错误 : Cannot read property 'release' of undefined

typescript - TypeScript 中可以使用编译时标记数字吗?

http - Angular 2 (TypeScript) : Unable to bind to object from http. 获取 HTML 模板