我正在开发一个网站,我正在使用TypeScript。
我正确地使用tsc
编译器和我的所有JavaScript编译,但如果我在TypeScript中使用import
语句,那么它将编译成JavaScript文件作为require
语句在网络上无法使用。
我知道我可以使用browserify
之类的东西来解决这个问题,但是当它看到require
语句时,其中包含其他JavaScript文件的代码。
我希望只使用<script src="..."></script>
在我的HTML中包含每个JavaScript文件。
如何防止TypeScript在已编译的JavaScript代码中生成require
语句?
以下是我的tsconfig.json
文件的内容:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"lib": [
"es6",
"dom"
],
"sourceMap": true,
"outDir": "./typescript/compiled",
"removeComments": true,
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
//"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"include": [
"./typescript/**/*.ts"
]
}
main.ts
import { Helper } from "./helper";
var helper = new Helper();
helper.ts
export class Helper {
// ...
}
main.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const helper_1 = require("./helper");
var helper = new helper_1.Helper();
//# sourceMappingURL=main.js.map
答案 0 :(得分:2)
如果您没有在javascript应用程序中使用模块。你甚至不在你的打字稿文件中使用import。因为使用导入意味着您将该文件导入到您的代码中。
如果您想单独使用javascript文件,请使用
/// <reference path=".. definition you want to refer ..." />
代替。
<强>已更新强>
从TypeScript 1.5开始,如果您的文件在
中"include": [
"./typescript/**/*.ts"
]
你不必再做reference ...
了。