-
Notifications
You must be signed in to change notification settings - Fork 19
less and ava plugin migration + appreciation #43
Comments
Hi. Thanks for the kind words. I agree that Start really shines when it comes to monorepo, I've been using it for 6 monorepos of different scales, and the flexibility always keeps me surprised every time I face a need for some functionality I haven't thought initially. "To be migrated" status is still here for some plugins mostly because it looks like I'm the only active user of Start, so there are only plugins which I need(ed) in my workflow. I never tried AVA in my projects, and according to their issue it's still unclear is there any more or less official "API" or not. I have no idea does my previous attempt still work or not. Regarding Less – I believe that it should be a very straightforward port of previous plugin implementation, literally the same as the current Babel one with a bit of tweaks for input source maps. So... I can port it by myself, but right now I have no proper way to test it correctly. It would be really nice if you try to do it by yourself on top of a real-life project :) I'm here to help with anything. |
Thanks @deepsweet! For less plugin, if you could migrate it to the current start, I'm willing to test it because I have some use cases with less stuff right now. For AVA, currently I'm thinking to create start plugin to just spawn ava's cli using |
Sure. Sorry, I was a bit busy, will try to migrate Less plugin next week. |
So after much tinkering I ended up using CMIIW, maybe because by design But for now I have to go back to traditional way of managing sub-package and will get back to |
¯\(ツ)/¯ I can't say much without seeing any numbers. It's not Start holds files content in memory, it's what Babel, ESLint and others wants by design: in order to make AST you have to read and parse file. The only weak spot of I believe that Anyway, I'm all open for proposals, thoughts and feedback. |
Unfortunately I can't share the project which I tried But, I created a repro at https://github.com/panjiesw/start-playground to simulate what I experienced above :) From the readme in that repro, on a monorepo with 10 sub-packages, compilation of all sub-packages sources from
|
Hm, quite interesting. Thanks for such a detailed response. I see 2 things:
And btw, I have already fixed |
I can definitely work on |
About the master fix, I already tried it in linked local packages and it's indeed been fixed! From what I know for case 1: Should I try with custom babel plugin which just spawn |
Here is the result without time --verbose npm run build:start
Command being timed: "npm run build:start"
User time (seconds): 102.66
System time (seconds): 3.65
Percent of CPU this job got: 744%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:14.28
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 142056
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 885725
Voluntary context switches: 34806
Involuntary context switches: 46870
Swaps: 0
File system inputs: 0
File system outputs: 10248
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0 Definitely better and also start faster than before. I've updated the readme in my repro with this result. |
From what I see
Aaand I found an extremely stupid bug – I forgot to Another idea: I'm planning to drop Node.js 6 (probably this week), so that there will be no |
😆 that's a 5 letters bug! It's a big improvement! The result with time --verbose npm run build:Start
Command being timed: "npm run build:start"
User time (seconds): 95.28
System time (seconds): 3.56
Percent of CPU this job got: 657%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:15.02
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 143976
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 905030
Voluntary context switches: 35297
Involuntary context switches: 34037
Swaps: 0
File system inputs: 0
File system outputs: 10248
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0 |
Great. I'll publish everything from master tomorrow including that |
Dropping Node 6 is a good idea, since frankly Start is relatively new (the revived version), so its main target is also somewhat new packages with high possibility of running on Node 8 or higher. One more possible improvement is providing a less verbose reporter. I suspect the |
That's why it's called "verbose" :) Any suggestions for something like |
Not too pretty, but I created a reporter at https://github.com/panjiesw/start-ora-reporter. It's not for performance gain but I do need a reporter which doesn't output all files processed. |
I'd say that it's pretty enough, would you mind if I add it to readme? |
It's still rough though. The spinners are overlapping each other. In a task with But yea I don't mind. |
Hei there,
Just recently found out about this task runner and I'm lovin it so far! It provides simple task based runner and really useful in a monorepo project. I actually prefer NPM scripts over task runner, but for large monorepo project it'll inevitably become tedious to maintain and sync across multiple packages.
Now start, provides ability to orchestrate build stanza right from a root of monorepo, without much complexion. Really like it!
I noticed that less and ava were originally supported as plugin but not yet migrated to the current start monorepo. Is there any ETA in when they'll be migrated? Or is there any pointer if I were to implement custom plugin for them in the current version of start?
The text was updated successfully, but these errors were encountered: