我在Style.ts文件中有一个Style类:
export class Style
{
...
}
此类具有一些属性,一些方法和构造函数,以及一些用于其他类依赖项的导入语句。该类当前正在通过标准的es6 import语句被其他类使用:
import { Style } from "../Theming/Style";
如果我将此文件作为webpack的入口点(几个)之一,它将在捆绑包的末尾生成该文件:
/***/ 0:
/*!***************************************************************!*\
/* ./src/Forms/Theming/Style ***!
\********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(/*! ./src/Forms/Theming/Style
*/"./src/Forms/Theming/Style.ts");
并且Style类没有出现在捆绑软件中。如果我不将此文件作为入口点,即使它被作为入口点包含的另一个模块使用,它也会被完全忽略。另外,我以一个类为例,因为这发生在多个文件中,我目前不知道为什么。
这是我的webpack配置文件:
module.exports = {
watch: false,
mode: "development",
devtool: false,
entry:
{
main: common.entryPoints
},
output:
{
path: __dirname + "/../dist",
filename: "forms-library.js",
library: "FormsLibrary",
libraryTarget: "umd"
},
module:
{
rules:
[
{ test: /\.ts$/, use: "ts-loader", exclude: "/node_modules/" }
]
},
resolve:
{
extensions: [ ".ts" ],
modules: [ "./src" ]
}
}
这是我的打字稿配置:
{
"exclude": ["node_modules","dist", "build"],
"compilerOptions":
{
"lib": [ "es2015", "dom" ],
"sourceMap": false,
"target": "es5",
"module": "es6"
}
}
谁能告诉我为什么现在这样?谢谢!
答案 0 :(得分:1)
Style
类仅由类型注释引用,因此在TypeScript编译器除去这些类型注释之后,Webpack正确地确定从运行时从您的入口点开始就永远不会使用该类。如果您在某个地方向new Style(...)
添加了一个实际的调用,则应该包括Style
类。或者,如果仅打算由库的客户端实例化该实例,则需要从入口点重新导出它,以便客户端可以访问它。
答案 1 :(得分:1)
我不确定这个问题是否已经解决,但是我发现自己也遇到了同样的问题,经过反复研究,我通过在libraryTarget
的{ Webpack配置:
output
希望这会有所帮助!