gpt4 book ai didi

typescript - Visual Studio 总是报告模块错误,但节点编译器在指定所有 typescript 文件时工作

转载 作者:搜寻专家 更新时间:2023-10-30 21:07:32 27 4
gpt4 key购买 nike

我最近将我的项目从 0.8.3 更新到 0.9.5。我正在编译为 ES3 并使用 AMD。我不会将 JS 合并到一个文件中。在开发时,我使用 RequireJS 动态加载模块。在编译时,我使用 RequireJS 优化器生成单个文件。

重构一些东西后,我陷入了两个明显的错误(多次发生)。

Module cannot be aliased to a non-module type.
Unable to resolve external module '...'

我的项目中有 84 个 typescript 文件和 21 个定义文件。使用节点编译器时,我能够以任何顺序 传递所有 105 个 ts/d.ts 文件,并且它为每个文件编译 JS,没有任何错误或警告。但是,当我仅使用节点编译器指定单个 ts 文件时,我能够看到与 VS 显示的相同的模块导入错误。

我阅读了有关 _references.ts 的内容,但我不确定这对我的场景是否有帮助,因为它看起来好像只会在使用 --out 时使用> 选项。

我将我的 .csproj 与一个基本的 HTML TypeScript 应用程序进行了比较,我注意到我的有几个新的 typescript 项目没有的 DependentUpon 条目(见下文)。我不确定这些是否有害。我的项目类型是类库,但我正确设置了 TypeScript build设置选项卡以及工具->选项->文本编辑器->TypeScript->项目。

<Content Include="js\controls\abc\models\xyz\baseRow.js">
<DependentUpon>baseRow.ts</DependentUpon>
</Content>

我想利用 VS 的错误报告,但我不确定此时如何解决这些错误。任何建议表示赞赏

最佳答案

我发现了问题。我的 typescript 文件的顶部混合了 ///<reference ... 和 imports比如:

///<reference path="../../../vendor/underscore/underscore.d.ts"/>
import _ = require("underscore")
///<reference path="../../../vendor/jquery/jquery.d.ts"/>
import $ = require("jql")

///<reference path="../templates/templates.d.ts"/>
import ET = require("text!controls/research/templates/edits-pane/result.html")

我的大多数 .d.ts 文件中都有环境模块声明。一旦我移动了所有 ///<reference到顶部,VS 停止抛出错误并按预期开始编译。

///<reference path="../../../vendor/underscore/underscore.d.ts"/>
///<reference path="../../../vendor/jquery/jquery.d.ts"/>
///<reference path="../templates/templates.d.ts"/>
import _ = require("underscore")
import $ = require("jql")

import ET = require("text!controls/research/templates/edits-pane/result.html")

我不确定这是否是设计使然。希望它能帮助别人。

关于typescript - Visual Studio 总是报告模块错误,但节点编译器在指定所有 typescript 文件时工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20803527/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com