javascript - 使用 Webpack 时 Typescript 编译器 "cannot find module"需要 CSS/图像 Assets

标签 javascript typescript webpack visual-studio-code

我正在编写 vanilla Javascript,但使用 Typescript 编译器的 checkJs 选项在 VSCode 中进行类型检查。我将 Webpack 设置为加载各种 Assets 类型(CSS、图像等),这对于构建工作正常,但代码将这些语句视为错误。例如,在这段代码中

require("bootstrap");
require("bootstrap/dist/css/bootstrap.css");
var img = require("../img/image.png");

第一行很好,但接下来的两行都在 require() 的(字符串)参数下显示错误,工具提示为“找不到模块(名称)”。

我已经安装了 @types/webpack@types/webpack-env,它们修复了 resolve()resolve。上下文()。我是否缺少另一个打字包,或者这是我需要解决的问题 the DT issue tracker

最佳答案

为 VS Code 的 JavaScript 和 TypeScript intellisense 提供支持的 TypeScript 服务器目前不支持需要非 JS 或 TS 资源。这是跟踪此问题的问题:https://github.com/Microsoft/TypeScript/issues/15146

作为解决方法,尝试在您的项目中创建一个包含以下内容的 d.ts 文件:

declare module '*.css' { export default '' as string; }
declare module '*.png' { export default '' as string; }

您还可以通过在 require 之前添加 //@ts-ignore 来抑制个别错误:

// @ts-ignore
var img = require("../img/image.png");

关于javascript - 使用 Webpack 时 Typescript 编译器 "cannot find module"需要 CSS/图像 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45432951/

相关文章:

javascript - ForEach 循环是否允许使用 break 和 continue?

javascript - 在同一窗口(选项卡)中打开链接之前转到页面顶部。如何?

javascript - 使用带有大量参数的纯函数是否会降低性能?

typescript - Typescript 中的 `this` 和 `static` 有什么不同?

javascript - 从 JS 文件中获取 Vue

javascript - 如何从外部访问webpack包(js)中的mobx对象

node.js - NPM Start 不启动本地服务器

javascript - 使用javascript在html中重新排序动态表

php - 点赞按钮 - Facebook 在新域上出现错误 500

javascript - 无法订阅 Aurelia 中的路由器事件(TypeScript)