问题标签 [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.
typescript - 打字稿没有为“/path/to/file.ts”发出输出
我有一个用打字稿写的图书馆。我可以使用tsc
下面的配置对其进行转换,而不会出现任何问题。
但是当另一个项目尝试从链接的 npm 包中使用这个库时,它无法使用webpack
and进行转换和捆绑ts-loader
。对于库 webpack 的所有文件都会出错:
错误:Typescript 没有为 /library/path/to/file.ts 发出输出
注意:webpack 尝试从链接的目的地加载它,而不是从node_modules
它与 npm链接的目的地加载。
项目使用库的 Webpack 配置如下。
项目使用库的tsconfig.json
还有一个不发出输出的库文件示例:
我找不到它没有为该项目发出输出的任何原因。我可以毫无问题地编译库。有人可以帮我解决这个问题吗?
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
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 编译成功。
typescript - ts-loader:从其他 Yarn 工作区导入 .ts 模块
我的纱线工作区结构如下:
为了构建/app
包,我使用带有 ts-loader 的 Webpack。这是配置:
和tsconfig.json
当我想从其他工作区导入模块时:
发生错误:
但是当我添加扩展导入时,一切正常:
如何修复 webpack 配置以将任何工作区模块作为 Typescript 导入而无需扩展?
我已经尝试过:
和:
typescript - 带有 ts-loader 的 webpack 线程加载器
我的 webpack 配置中有以下规则:
这导致:
当我删除线程加载器时它工作正常。
typescript - 从应用程序包中排除本地 TypeScript 库
如何从为我的应用程序创建的包中排除本地 TypeScript 库?在我的用例中,我想将我的 TypeScript 库的包和我的应用程序的包作为单独的 JavaScript 文件提供。
我的图书馆
索引.ts
包.json
tsconfig.json
webpack.config.js
我的应用程序
索引.ts
包.json
tsconfig.json
webpack.config.js
在我的示例中,库代码包含在应用程序包中。我希望不包含该库,以便我可以将其作为单独的捆绑包提供。
typescript - 添加我的类型声明会引发错误“Typescript 没有为 my.d.ts 发出输出”
使用我自己的类型声明文件(假设是 my.d.ts)编译 TypeScript 会出现错误,提示“Typescript 没有为 my.d.ts 发出输出”。当然,我不希望从这个类型声明文件中生成任何代码。
my.d.ts 只有这样的接口定义。
node.js - 如何让 Webpack 和 Typescript 使用外部 node_module 文件夹?
设置
我将bluebird
模块连同@types/bluebird
安装在一个node_modules
文件夹中。
我还有一些.ts
文件将使用 Webpack 捆绑并在浏览器中使用。
由于各种原因,该node_modules
文件夹位于我的.ts
文件的路径层次结构之外。
问题
我想bluebird
在我的文件中导入模块,.ts
这样:
- 我得到打字。
- Webpack 将解析模块并将其包含在输出包中。
如果node_modules
在路径层次结构中的正确位置,我可以简单地这样做:
import * as Promise from 'bluebird'
Typescript 编译器(通过ts-loader
)解析为类型定义 node_modules/@types/bluebird
并类型检查代码,Webpack 解析为实际的模块node_modules/bluebird
并在包中发出它。
但是,使用外部node_modules
文件夹,我无法使其正常工作。
我尝试过的方法
到目前为止,我能够得到它,以便 Typescript 很高兴,但 Webpack 却没有。
1.设置baseURL
和paths
输入tsconfig.ts
对我来说最明显的解决方案似乎是像这样设置并baseURL
设置 a (包含文件夹):paths
node_modules
tsconfig.json
shared
node_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
文件夹中指定相对路径,但最终遇到了大致相同的问题。
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
.
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