You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
1.8: -m system --outFile foo.js should recognize files without exports as modules #6313
Background: I come from tsify, which treats files as modules even if you don't export anything from them, if the file is imported from elsewhere in the project.
I am trying to use the new bundling feature implemented in #5090.
I am doing this:
tsc -m system -t es5 --outFile dev/js/main.js .\App\app.ts
We have .ts files that don't have any exports; module system is used to impose execution order. E.g.
import'./a';import'./b';
if a.ts or b.ts doesn't have any exports, System.register() wrapper is not generated for them. Instead, they are dumped to top level of main.js, and are executed immediately when script is loaded.
Proposed solution: promote all files that are imported somewhere to modules, regardless of whether they have exports or not. This is feasible for --outFile, since the compiler has global knowledge of everything that ends up in the emitted output file.
We can not do that safely as this would break single file compilation scenarios. consider cases where you are transpiling in the browser, the compiler only looks at one file at a time. deciding if a file is external module or not should only depend on the file and not on the global state. otherwise we get inconsistent output.
what tsify does is to pass --isolatedModules; doing so on the command line would give an error (which is ignored in the case of tsify) but will emit the expected code, not sure if that helps you though.
Activity
mhegazy commentedon Jan 4, 2016
We can not do that safely as this would break single file compilation scenarios. consider cases where you are transpiling in the browser, the compiler only looks at one file at a time. deciding if a file is external module or not should only depend on the file and not on the global state. otherwise we get inconsistent output.
what tsify does is to pass --isolatedModules; doing so on the command line would give an error (which is ignored in the case of tsify) but will emit the expected code, not sure if that helps you though.