Personally, I think Closure compiler is too quirky with its strict requirements for circulars, and I want -remove-circulars to go away, if possible. Or switch the default to the opposite, where you need to set a flag if you want things to be stricter.
- Josh On Tue, Mar 21, 2017 at 1:41 PM, Alex Harui <aha...@adobe.com> wrote: > Update: I'm making progress on this, and it looks like it will work, but > there is one thing I don't like about it, which is that it means that the > JS files in the SWCs won't be usable as-is in Google Closure. They will > always have to be processed by FalconJX so their non-prototype > dependencies can be moved to the main JS files and we have to suppress the > missingRequire warning. > > That sort of punishes anyone who really does have a code base that is > clean of circular dependencies, which is sort of a bad thing. Folks who > want to write clean code should be rewarded by errors and warnings that > their code isn't clean. > > So, I'm now thinking that I will rework the implementation yet again to > have the JS files keep their goog.requires. Then, if you turn on > -remove-circulars, we'll modify the JS files in bin/js-debug in a way that > will indicate they've been modified. > > Let me know if you have any thoughts on it. > -Alex > > > On 3/18/17, 9:35 PM, "Alex Harui" <aha...@adobe.com> wrote: > > > > > > >On 3/18/17, 9:56 AM, "Harbs" <harbs.li...@gmail.com> wrote: > > > >>In principle that sounds good, but what will make sure that all the > >>necessary files are loaded? > >> > >>Also, will that effect the google compiler being able to optimize the > >>code? > >> > >>Ah. I think I understand. You’ll still output the requires in the main > >>app, but you’ll build the list from js tags in the files. That way there > >>will be no need to ever modify the original js files. Correct? > > > >Yes, that's the plan. In theory we only need to modify the main.js file. > >Right now we read and write almost every file. > > > >-Alex > > > >> > >>Harbs > >> > >>> On Mar 18, 2017, at 4:22 PM, Alex Harui <aha...@adobe.com> wrote: > >>> > >>> That said, I'm now planning to try to change the compiler output to > >>>only > >>> emit goog.requires for prototype dependencies and uses a special jsdoc > >>>tag > >>> in place of all of the other goog.requires we currently output. That > >>> might make compiles even faster because we won't have to muck with the > >>> list of requires on each compile. > >> > > > >