使用 Typescript 和 Webpack 错误捕捉 SVG "Cannot read property 'on' of undefined"

Snap SVG with Typescript and Webpack error "Cannot read property 'on' of undefined"

我有一个使用 Snap SVG 的 Angular 4 应用程序,我遇到了 dredded webpack 问题 "Cannot read property 'on' of undefined"。

使用 snapsvg-cjs 似乎是解决此问题的最简单方法,但后来我丢失了所有漂亮的打字稿输入(此处回答:)。

有一些关于使用 import-loader 的讨论,但我需要一个 web pack 配置,而 angular cli 将它拿走了。加上 :

import Snap from 'imports-loader?this=>window,fix=>module.exports=0!snapsvg/dist/snap.svg.js';

无法在打字稿中编译。

我对所有这些东西都很陌生,所以感觉有些困惑 - 我希望我能再次在 windows 上做 VB6.... :)。谁能澄清一下?

谢谢

好的,我知道我现在做了什么。使用 snapsvg-cjs 就可以了。我获得打字稿支持。

我遇到了同样的问题。对我来说,我安装了 snapsvg-cjs@types/snapsvg,然后这样导入库:

import "snapsvg-cjs"

您只需以这种方式导入一次(可能在 main.ts 文件或其他文件中)

然后在要使用库的文件中,按如下方式导入类型:

import * as SNAPSVG_TYPE from "snapsvg"
declare var Snap: typeof SNAPSVG_TYPE

这让我可以像平常一样使用 typescript 类型,同时仍然使用 webpack 兼容版本。