use*_*757 5 visual-studio typescript ecmascript-6 webpack rollupjs
我有一个旧的 TypeScript Web 应用程序,它通过 HTML 页面上的脚本包含引用所有内容,因此所有内容都在全局命名空间中声明。TypeScript 代码使用 TypeScript 的模块 -
myclass.ts:
module MyModule {
export class MyClass {
}
}
Run Code Online (Sandbox Code Playgroud)
其他文件.ts
let myInstance = new MyModule.MyClass(); // globally available
Run Code Online (Sandbox Code Playgroud)
所有 TypeScript 都使用 tsconfig.json 中的“outFile”写入单个文件,这可能会对全局变量和写入顺序产生问题。
我使用 Visual Studio,它内置了 TypeScript 支持。当您构建解决方案时,它会构建 TypeScript。
我想更新代码以使用现代 ES6 模块:
myclass.ts:
export class MyClass {
}
Run Code Online (Sandbox Code Playgroud)
其他文件.ts
import { MyClass } from "./myclass";
let myInstance = new MyClass();
Run Code Online (Sandbox Code Playgroud)
我最初以为我需要使用第三方库(例如 webpack 或 rollup)来完成这项工作,但是查看 TypeScript 编译器生成的 JavaScript,看起来应该可以继续使用“outFile” - 一切都已包装在模块中,因此不应全局可用:
Object.defineProperty(exports, "__esModule", { value: true });
var MyClass = /** @class */ (function () { ..}());
exports.MyClass = MyClass;
Run Code Online (Sandbox Code Playgroud)
如果我要使用 rollup 或 webpack,我会有点困惑这将如何与运行自己的 tsc 进程的 Visual Studio 一起工作 - 大多数示例似乎都适合使用 npm typescript 编译器的 VS Code。
无论如何,我错过了什么吗?有什么原因我不能跳过使用 webpack 或 rollup 吗?