Has anyone seen anything like this done in another language (with static imports)? If so we could learn something maybe. I know you can conditionally import in Python but that's basically the same thing as .catch()ing dynamic import()s in JavaScript (except done synchronously).
Ben Le ven. 1 mars 2019 15 h 26, Herby Vojčík <he...@mailbox.sk> a écrit : > On 1. 3. 2019 18:35, Michał Wadas wrote: > > I don't think so, because: > > > > * Using promises to import module is not always desirable > > * This mechanism doesn't impact ability to statically analyze modules > > if ifs are excluded - it can only increase resolution time. > > Yeah, if 'if's are excluded. That version with those ifs was what was > concerning. That actually needs runtime to do the work. I suppose until > it doesn't need the runtime, it's all ok. > > > > > On Fri, Mar 1, 2019 at 1:56 PM Herby Vojčík <he...@mailbox.sk > > <mailto:he...@mailbox.sk>> wrote: > > > > On 1. 3. 2019 12:04, Michał Wadas wrote: > > > Syntax: > > > > > > try import fs from 'fs' > > > else import fs from 'fs-polyfill' > > > else import fs from 'another-fs-polyfill' > > > else do nothing; // Not sure about syntax > > > > > > > > > try import {watchDirectory} from 'fs' > > > else import {watchDirectory} from 'fs-polyfill' > > > else if(process.os === 'ExoticSystem') import > > {watchDirectory} from > > > 'another-fs-polyfill' > > > else throw Error('Your OS doesn\'t support watching > > directories'); > > > > I am not an expert, but afaict ES module system was created to be > > statically analysable and this bring uncertainity. > > > > For that probably dynamic import() is there; and your usage should > > await > > for a promise that tries to load one then the other etc. > > > > Herby > > > > > Usages: > > > > > > * Optional dependencies > > > * Polyfills > > > > > > Problems: > > > > > > * This can prevent loading modules before execution if presence > of > > > modules can't be proved statically > > > * else-if requires execution before loading module - can be > dropped > > > > > > > > > I don't have enough time and knowledge about modules to write > actual > > > proposal. > > > > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss