我绝对不了解如何为导入工作提供模块路径。
大部分时间我在Visual Studio 2015中编辑TypeScript时,我得到一条红色波浪线和一条错误消息,告诉我该模块" x"无法找到。但是没有IntelliSense或者无论如何创建正确的模块名称,这有助于我找到要添加到require调用的正确名称。
这是我的问题:我编写的代码已被不同目录中的不同HTML页面使用。我的TypeScript代码的一部分也驻留在不同的目录中。
那么我应该如何从TypeScript代码中引用所有不同的TypeScript / JavaScript库,以使其最终正常工作?如何在TypeScript中解决它,以及如何在我的一个HTML页面中调用它时如何解决它?
jQuery应该如何适应这一切?引用jQuery的唯一方法是编写:
import $ = require("jquery");
但是我的项目中没有这样的文件名。但是我使用的任何其他术语(例如" ../../ Scripts / jquery-2.1.4")再次带回红色波浪线。那么这一切应该如何在运行时加载?
我已阅读How to Use RequireJS with jQuery和RequireJS Configuration options,但我仍然不理解。
在部署内容时变得特别难以理解。因为那时我会使用" .min.js"文件,驻留在另一个目录中。
答案 0 :(得分:1)
当你写:
import $ = require("someModule");
TypeScript仅在文件是TypeScript文件时检查文件是否存在。对于JavaScript库,您应该手动或通过NuGet向项目添加定义文件(例如JQuery.d.ts)
不幸的是,TypeScript不支持环境模块的相对路径(例如../../Scripts/jquery-2.1.4
),因此您应该映射位于不同路径的模块:
require.config({
paths: {
"jquery": "Scripts/jquery-2.1.4"
}
...
}
要进行部署,您可以使用RequireJS Optimizer。
实际上没有必要使用RequireJS(AMD模块)。您可以使用internal modules(即模块系统“无”)。因此不需要import = require
。您应该按照正确的顺序引用HTML中的脚本,从需要到依赖。
更新:如果您仍想使用RequireJS的相对路径,则应将jquery.d.ts
移到实际的jquery.js
文件旁边,并在文件更改模块声明的末尾:
declare module "jquery" {
export = $;
}
只是:
export = $;