从TypeScript中生成的JavaScript文件中删除require语句

时间:2017-11-30 07:30:14

标签: javascript typescript

我正在开发一个网站,我正在使用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

1 个答案:

答案 0 :(得分:2)

如果您没有在javascript应用程序中使用模块。你甚至不在你的打字稿文件中使用import。因为使用导入意味着您将该文件导入到您的代码中。

如果您想单独使用javascript文件,请使用

/// <reference path=".. definition you want to refer ..." />

代替。

<强>已更新

从TypeScript 1.5开始,如果您的文件在

"include": [
        "./typescript/**/*.ts"
    ]

你不必再做reference ...了。