【问题标题】:Webpack with typings.json带有typings.json的Webpack
【发布时间】:2016-09-01 11:10:33
【问题描述】:

我一直在看这个博客教程 - http://www.jbrantly.com/typescript-and-webpack/ 创建一个捆绑的 JS 文件,该文件结合了来自 Typescript 项目的代码及其使用的库(例如链接中的 jQuery)并使用 webpack 捆绑它。

虽然本教程很好(并且我已经按预期工作了),但它现在已经过时了,因为 tsd.json 文件被替换为 typings.json 并且到目前为止我一直无法创建一个虚拟项目喜欢链接中的教程,但使用打字。

那么关于需要什么配置或如何使用类型 (https://github.com/typings/typings) 和使用 webpack 捆绑代码有什么想法吗?

【问题讨论】:

    标签: typescript webpack typescript-typings


    【解决方案1】:

    typingstsd 项目的行为非常相似。尤其是在将类型包含到您的项目中时。

    typingstsd 一样,会将所有已安装的类型 (see this for how to install new typings) 放入 typings 目录中。在该目录中放置了一个名为index.d.ts 的文件。此文件包含对已安装类型的所有引用。

    在构建 TypeScript 项目时,请确保 index.d.tstsconfig.jsonfiles 属性的一部分。例如:

    {
        "compilerOptions": {
            "..": ".."
        },
        "files": [
            "typings/index.d.ts",
            "src/index.ts"
        ]
    }
    

    其中src/index.ts 是项目的入口文件。当涉及到 webpack 时,您不必编辑任何内容。

    如果你想举个例子,this 是我不久前做的一个项目。 但是由于我的tsconfig.json 中没有files 属性,TypeScript 编译器会自行查找定义文件。

    【讨论】:

    • 谢谢,过了太久我注意到我没有将这一行放在我的 TS 文件的顶部 - import $ = require('jquery');这意味着 IntelliJ 没有抱怨,当我使用 webpack 时它也没有抱怨。捆绑了代码,但没有 jQuery 导入。它列在我的打字文件夹和 index.d.ts 中——这就是我猜 IntelliJ 能找到它的原因。因此,如果您想捆绑导入,请确保包含导入。不喜欢将我自己的答案标记为正确,所以我会给你。
    【解决方案2】:

    你安装类型 -

    1. npm 安装类型
    2. typings install dt~jquery --save --global(这会为 jquery 安装 d.ts)
    3. 确保包含导入 - 例如导入 $ = 要求('jquery');在您的 TS 文件中。没有它,像 intelliJ 这样的 IDE 可以很好地编译你的代码 - 但是 webpack 不会看到 jQuery,因此没有它就不会包含它。

    其他一切都与教程链接相同。

    【讨论】: