使用TypeScript、Browserify和SVG.js

使用TypeScript、Browserify和SVG.js,typescript,browserify,svg.js,tsify,Typescript,Browserify,Svg.js,Tsify,首先:我是Node.js的新手,所以如果这是一个愚蠢的问题,请耐心听我说 我试图让browserify和tsify使用TypeScript和SVG.js库。据我所知,我应该能够 编写使用SVG.js库的TypeScript代码 将此代码编译为vanilla JS,并将其与库本身捆绑在一起,以便在浏览器中使用browserify和tsify 第一步很简单,但第二步给我带来了问题。即使我从“svg.js”中编写了最简单的TypeScript程序,其中只包含行import*作为SVGJS,然后运行ts

首先:我是Node.js的新手,所以如果这是一个愚蠢的问题,请耐心听我说

我试图让
browserify
tsify
使用TypeScript和SVG.js库。据我所知,我应该能够

  • 编写使用SVG.js库的TypeScript代码
  • 将此代码编译为vanilla JS,并将其与库本身捆绑在一起,以便在浏览器中使用
    browserify
    tsify
  • 第一步很简单,但第二步给我带来了问题。即使我从“svg.js”中编写了最简单的TypeScript程序,其中只包含行
    import*作为SVGJS,然后运行
    tsify
    中指定的命令(
    browserify main.ts-p[tsify--noImplicitAny]>bundle.js
    ),编译的
    bundle.js
    文件也有以下内容:

    在这里,我希望看到整个SVG.js库的代码。至少,如果我创建一个包含
    var SVGJS=require('svg.JS')
    的普通JS文件,并在该文件上运行
    browserify
    ,就会得到这样的结果


    有人能告诉我我做错了什么吗?我已经安装了所有必需的节点模块,在编译过程中没有收到任何警告或错误。如果我需要提供更多信息,请告诉我。

    Browserify做树上运动吗?如果是这样的话,如果您不使用svg库,它就不会在包中包含svg库it@Fuzzyma我不这么认为。如果我用几行使用导入的SVG.js库的代码来扩展我的程序,我在bundle.js文件中会得到相同的结果(除了现在附加的额外行)。嗯,我从来没有使用过browserify,因此对此无能为力。但是,您可以尝试使用考虑esm的新版本3.0.12。也许是helps@Fuzzyma非常感谢你迄今为止的帮助!我已经更新到了3.0.12,但是现在TypeScript编译器给了我以下错误:
    node_modules/@svgdotjs/svg.js/svg.js.d.ts:296:18-错误TS2583:找不到名称“Set”。是否需要更改目标库?尝试将“lib”编译器选项更改为es2015或更高版本。
    如果我运行命令
    tsc main.ts--lib es2015
    ,我会收到大量新错误(确切地说是118个)。我知道它可以工作,因为我测试了该位。这都是关于你需要包括的LIB。不幸的是,我不知道了。您需要驾驶es6,并且需要Dom。文档中的某个地方写着哪些LIB可用?浏览树木?如果是这样的话,如果您不使用svg库,它就不会在包中包含svg库it@Fuzzyma我不这么认为。如果我用几行使用导入的SVG.js库的代码来扩展我的程序,我在bundle.js文件中会得到相同的结果(除了现在附加的额外行)。嗯,我从来没有使用过browserify,因此对此无能为力。但是,您可以尝试使用考虑esm的新版本3.0.12。也许是helps@Fuzzyma非常感谢你迄今为止的帮助!我已经更新到了3.0.12,但是现在TypeScript编译器给了我以下错误:
    node_modules/@svgdotjs/svg.js/svg.js.d.ts:296:18-错误TS2583:找不到名称“Set”。是否需要更改目标库?尝试将“lib”编译器选项更改为es2015或更高版本。
    如果我运行命令
    tsc main.ts--lib es2015
    ,我会收到大量新错误(确切地说是118个)。我知道它可以工作,因为我测试了该位。这都是关于你需要包括的LIB。不幸的是,我不知道了。您需要驾驶es6,并且需要Dom。文档中的某个地方写了哪些LIB可用