sso*_*nez 3 typescript webpack
我目前正在使用“ gulp”来生成我的捆绑包的定义文件,如下所示:
dtsGenerator.default({
name: 'ngFramework',
project: './',
out: './Typings/raw/index.d.ts'
});
Run Code Online (Sandbox Code Playgroud)
但是,我正在迁移到webpack,我想找到一种方法来做同样的事情。我尝试了“ tsconfig”中的“ declaration”标志,但它只是为每个单独的“ ts”文件创建了定义文件,这不是我想要的(我想要捆绑包的定义文件)。
我尝试了“ dtsbundler-webpack-plugin”,但无法按预期工作。没有“ tsconfig”的“ declaration”标志,生成的文件为“ 0字节”,有了它,我有很多错误。
您应该将dts-bundle与WebPack一起使用以生成捆绑包。您应该将声明标志保留为true并尝试以下操作:
一般
var path = require('path');
var rootDir = path.resolve(__dirname);
Run Code Online (Sandbox Code Playgroud)
编写简单的插件
function DtsBundlePlugin() {}
DtsBundlePlugin.prototype.apply = function (compiler) {
compiler.plugin('done', function () {
var dts = require('dts-bundle');
dts.bundle({
name: 'your-lib-name',
main: rootDir + '/build/types/**/*.d.ts',
out: rootDir + '/build/index.d.ts',
removeSource: true,
outputAsModuleFolder: true
});
});
};
Run Code Online (Sandbox Code Playgroud)
可以在Vladimir Tolstikov的博客中找到更多信息。
寄存器
plugins: [
new DtsBundlePlugin()
]
Run Code Online (Sandbox Code Playgroud)
我已经设法绑定了类型,但是与源代码相关的绑定代码出现了一些问题。