Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio TypeScript和ES模块-我甚至需要汇总/网页包吗?_Visual Studio_Typescript_Webpack_Ecmascript 6_Rollupjs - Fatal编程技术网

Visual studio TypeScript和ES模块-我甚至需要汇总/网页包吗?

Visual studio TypeScript和ES模块-我甚至需要汇总/网页包吗?,visual-studio,typescript,webpack,ecmascript-6,rollupjs,Visual Studio,Typescript,Webpack,Ecmascript 6,Rollupjs,我有一个旧的TypeScript web应用程序,它通过HTML页面上包含的脚本引用所有内容,因此所有内容都在全局命名空间中声明。TypeScript代码使用TypeScript的模块- myclass.ts: module MyModule { export class MyClass { } } export class MyClass { } someotherfile.ts let myInstance = new MyModule.MyClass(); // globally

我有一个旧的TypeScript web应用程序,它通过HTML页面上包含的脚本引用所有内容,因此所有内容都在全局命名空间中声明。TypeScript代码使用TypeScript的模块-

myclass.ts:

module MyModule {
  export class MyClass {
 }
}
export class MyClass {
}
someotherfile.ts

let myInstance = new MyModule.MyClass(); // globally available
import { MyClass } from "./myclass";
let myInstance = new MyClass(); 
使用tsconfig.json中的“outFile”将所有TypeScript写入单个文件,这可能会对全局变量和写入顺序造成问题

我使用visualstudio,它内置了TypeScript支持。当您构建解决方案时,它会构建类型脚本

我想将代码更新为使用现代ES6模块:

myclass.ts:

module MyModule {
  export class MyClass {
 }
}
export class MyClass {
}
someotherfile.ts

let myInstance = new MyModule.MyClass(); // globally available
import { MyClass } from "./myclass";
let myInstance = new MyClass(); 
我最初认为我需要使用第三方库(如webpack或rollup)来实现这一点,但从TypeScript编译器生成的JavaScript来看,继续使用“outFile”似乎应该可以实现这一点——所有内容都包装在模块中,因此不应该在全球范围内可用:

Object.defineProperty(exports, "__esModule", { value: true });
var MyClass = /** @class */ (function () { ..}());
exports.MyClass = MyClass;
如果我要使用rollup或webpack,我对Visual Studio运行自己的tsc过程时如何工作感到有点困惑-大多数示例似乎都是针对使用npm typescript编译器的VS代码


不管怎样,我是不是错过了什么?有什么理由我不能跳过使用webpack或rollup吗

您需要rollup/webpack来绑定它们并导出一个全局命名空间。很遗憾,TypeScript不能为您这样做。@unional-全局命名空间中不是“导出”吗?
exports
在浏览器中未定义。如果您的意思是作为npm包发布,那么是的,您不需要汇总/webpack。@unional,这是一个浏览器应用程序。这就是为什么如果您只是将该文件包含到html中,它将不起作用。