问题标签 [ts-loader]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5203 浏览

typescript - 打字稿没有为“/path/to/file.ts”发出输出

我有一个用打字稿写的图书馆。我可以使用tsc下面的配置对其进行转换,而不会出现任何问题。

但是当另一个项目尝试从链接的 npm 包中使用这个库时,它无法使用webpackand进行转换和捆绑ts-loader。对于库 webpack 的所有文件都会出错:

错误:Typescript 没有为 /library/path/to/file.ts 发出输出

注意:webpack 尝试从链接的目的地加载它,而不是从node_modules它与 npm链接的目的地加载。


项目使用库的 Webpack 配置如下。

项目使用库的tsconfig.json

还有一个不发出输出的库文件示例:

我找不到它没有为该项目发出输出的任何原因。我可以毫无问题地编译库。有人可以帮我解决这个问题吗?

0 投票
3 回答
4789 浏览

reactjs - 使用别名而不是相对路径创建的打字稿声明文件

编辑 1:将 GitHub URL 添加到项目

baseUrl编辑2:从tsconfig.json修复所有问题中删除并使用相对导入工作正常。

链接:Github

如何使用相对路径而不是生成打字稿声明文件alias

我正在 UMD 模式下创建一个库(samplelibrary)并在 npm 中发布它。打包的 npm 库只有build文件夹(带有类型),package.json并且README.md

当我尝试在另一个打字稿应用程序中使用该库时,由于正在生成无效的类型声明文件,构建失败。类型声明文件包含别名而不是相对路径。

编译日志:

ERROR in /workspace/myproject/node_modules/samplelibrary/build/typings/src/foo.d.ts(403,17): TS2307: Cannot find module 'utils/bar

如何解决这个问题?

实际创建的声明文件 foo.d.ts:

预期文件:

tsconfig.json

文件夹结构:

实用程序/bar.ts

src/foo.ts

0 投票
0 回答
987 浏览

javascript - 使用打字稿反应热重载

我正在尝试在 90% 的代码库上使用打字稿添加热重载tsx。为此,我正在关注https://github.com/TypeStrong/ts-loader/tree/master/examples/react-hot-boilerplate

我已经添加

所以我开始得到奇怪的编译错误:

./client/main.tsx 中的错误 // <-- 我的入口点

模块构建失败(来自 ./node_modules/ts-loader/index.js):TypeError:无法读取 Object.getEmitOutput 处未定义的属性“getEmitOutput”(....../node_modules/ts-loader/dist/instances. js:190:41)

不知道为什么...在我的依赖树上,有 tsx、ts 和 js 文件。没有这些选项,ts-loader 编译成功。

0 投票
1 回答
2551 浏览

typescript - ts-loader:从其他 Yarn 工作区导入 .ts 模块

我的纱线工作区结构如下:

为了构建/app包,我使用带有 ts-loader 的 Webpack。这是配置:

tsconfig.json

当我想从其他工作区导入模块时:

发生错误:

但是当我添加扩展导入时,一切正常:

如何修复 webpack 配置以将任何工作区模块作为 Typescript 导入而无需扩展?

我已经尝试过:

和:

0 投票
1 回答
4243 浏览

typescript - 带有 ts-loader 的 webpack 线程加载器

我的 webpack 配置中有以下规则:

这导致:

当我删除线程加载器时它工作正常。

0 投票
1 回答
1487 浏览

typescript - 从应用程序包中排除本地 TypeScript 库

如何从为我的应用程序创建的包中排除本地 TypeScript 库?在我的用例中,我想将我的 TypeScript 库的包和我的应用程序的包作为单独的 JavaScript 文件提供。

我的图书馆

索引.ts

包.json

tsconfig.json

webpack.config.js

我的应用程序

索引.ts

包.json

tsconfig.json

webpack.config.js

在我的示例中,库代码包含在应用程序包中。我希望不包含该库,以便我可以将其作为单独的捆绑包提供。

0 投票
1 回答
789 浏览

typescript - 添加我的类型声明会引发错误“Typescript 没有为 my.d.ts 发出输出”

使用我自己的类型声明文件(假设是 my.d.ts)编译 TypeScript 会出现错误,提示“Typescript 没有为 my.d.ts 发出输出”。当然,我不希望从这个类型声明文件中生成任何代码。

my.d.ts 只有这样的接口定义。

0 投票
1 回答
2166 浏览

node.js - 如何让 Webpack 和 Typescript 使用外部 node_module 文件夹?

设置

我将bluebird模块连同@types/bluebird安装在一个node_modules文件夹中。

我还有一些.ts文件将使用 Webpack 捆绑并在浏览器中使用。

由于各种原因,该node_modules文件夹位于我的.ts文件的路径层次结构之外。

问题

我想bluebird在我的文件中导入模块,.ts这样:

  1. 我得到打字。
  2. Webpack 将解析模块并将其包含在输出包中。

如果node_modules在路径层次结构中的正确位置,我可以简单地这样做:

import * as Promise from 'bluebird'

Typescript 编译器(通过ts-loader)解析为类型定义 node_modules/@types/bluebird并类型检查代码,Webpack 解析为实际的模块node_modules/bluebird并在包中发出它。

但是,使用外部node_modules文件夹,我无法使其正常工作。

我尝试过的方法

到目前为止,我能够得到它,以便 Typescript 很高兴,但 Webpack 却没有。

1.设置baseURLpaths输入tsconfig.ts

对我来说最明显的解决方案似乎是像这样设置并baseURL设置 a (包含文件夹):pathsnode_modulestsconfig.jsonsharednode_modules

但是我无法做到:

import * as Promise from 'shared/node_modules/bluebird'

我需要:

import * as Promise from 'shared/node_modules/@types/bluebird/index'

但是这个导入不适用于 Webpack。它要么找不到它,要么如果我配置它来找到它,ts-loader 不会喜欢编译它(因为它是一个声明文件),或者如果我配置它忽略它,它会在运行时崩溃,因为它不在那里。

2.相对导入

我尝试在node_modules文件夹中指定相对路径,但最终遇到了大致相同的问题。

0 投票
1 回答
1614 浏览

reactjs - Webpack 4:模块解析失败:意外的令牌

在我的构建过程中,webpack 给了我这个错误:

./client/components/App/index.tsx 中的错误 15:9 模块解析失败:意外令牌 (15:9) 您可能需要适当的加载程序来处理此文件类型。

@ ./client/index.tsx 11:4-14:6 12:24-51 @multi react-hot-loader/patch ./client/index.tsx webpack-hot-middleware/client?path=/__webpack_hmr&timeout=20000&reload =真

这是我的webpack.config.ts

我的App.tsx

我的index.tsx

我的tsconfig.json

错误本身似乎给出了解决方案:You may need an appropriate loader to handle this file type.但是,我的理解ts-loader应该能够处理反应。

webpack.config是团队提供的一个示例,该示例ts-loader用于使用 typescript 和 react 的应用程序中。该设置与我自己的设置非常相似,但是,我不使用webpack-dev-server,而是使用webpack-dev-middleware.

0 投票
0 回答
1054 浏览

node.js - Webpack Typescript错误意外的令牌

我正在尝试使用 Webpack 运行 Typescript,但我似乎遇到了问题。一切正常,直到我引入变量的类型(例如color:string;)。谁能帮我?

包.json:

webpack.config.js

tsconfig.json

当我尝试运行我的脚本时,我不断收到此错误:

./src/typescript/class/Car.ts 中的错误 4:8 模块解析失败:意外令牌 (4:8) 您可能需要适当的加载程序来处理此文件类型。

索引.ts

Car.ts