0

我是 InversifyJs 的新手。它看起来很棒,我正在尝试将它实施到我的项目中。在官方网站 ( http://inversify.io/ ) 上,我读到它是一个 4k 库,这很好,因为我必须使包的大小尽可能小。不幸的是,在实现它之后,捆绑包的整体大小(缩小和压缩)增加了大约 20k。这个意外的结果不是很好,如果我找不到解决方案,我必须删除 inversifyjs。我想知道我的配置可能有问题。

配置:

{
"compilerOptions": {
    "allowSyntheticDefaultImports": true,
    "outDir": "./Content/dist",
    "target": "es5",
    "lib": ["es6", "dom"],
    "types": ["reflect-metadata"],
    "module": "commonjs",
    "noImplicitAny": false,
    "removeComments": true,
    "preserveConstEnums": true,
    "sourceMap": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "allowJs": true,
    "jsx": "react"
},
"typeRoots": [
  "./node_modules/@types/"
],
"exclude": [
    "node_modules"
]

}

1)我在之前的tsconfig中只添加了这两个属性: "lib": ["es6", "dom"] "types": ["reflect-metadata"]

2)我在我的应用程序的入口点添加了导入“reflect-metadata” 。仅这个库就增加了大约 4k 的捆绑包。

3)我创建了一个容器并更改了要注入的现有类。当我将容器导入到我的应用程序入口点时,InversifyJs 成为我的 webpack-bundle 的一部分,增加了大约 15k。预期的结果是将捆绑包增加不超过 4k + 我为实现容器而添加的新几行代码的大小。

注意: InversifyJs 对我来说很好用。我唯一的问题/担忧是图书馆的规模远高于官方网站上的展示方式。

4

1 回答 1

1

inversify 网站已经有一段时间没有更新了。在 1.0 版本中它是 4k,但 typescript 和 inversify 都发展了很多。此外,4k 的计算不包括反射元数据的大小。

TypeScript 现在会生成一些更大的 polyfill,也许你应该考虑使用https://github.com/Microsoft/tslib并确保 webpack 正在做 tree-shaking http://blog.rangle.io/optimize-your-angular2-应用程序与摇树/

于 2018-03-20T16:04:30.477 回答