首页 > 解决方案 > 当路径明确时声明 Typescript 模块

问题描述

我有一个项目,我需要明确定位与浏览器兼容的包版本,以便 webpack 可以正确捆绑它。

import { optimize, extendDefaultPlugins } from 'svgo/dist/svgo.browser'

通常,导入是:

import { optimize, extendDefaultPlugins } from 'svgo'

这很好用,因为有可用的类型@types/svgo

当我从中导入时'svgo/dist/svgo.browser'出现错误Could not find a declaration file for module 'svgo/dist/svgo.browser'。如何通过将可用类型包重新路由@types/svgo到我更明确的导入语句来解决此错误?

标签: javascripttypescriptwebpackimportmodule

解决方案


我从 TypeScript 方面不知道,但是由于您使用的是 Webpack,因此您可以作弊并别名 'svgo''svgo/dist/svgo.browser'

resolve: {
  alias: {
    svgo: require.resolve('svgo/dist/svgo.browser')
  }
}

由于 TypeScript 不知道 Webpack 别名,它只会将您视为导入“普通”模块,并且@types/svgo默认情况下会获得增强功能,但 Webpack 会为您的包引入正确的代码。


推荐阅读