Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
[1.8.1-beta.16] #10414 results in server rebuilds on client code changes in packages #10449
#10414 in the current 1.8.1 beta results in client/server directories not treated special anymore.
A small reproduction:
change packages/custom/package.js to load different mainModules
create files packages/custom/client/client.js
now changing packages/custom/client/client.js results in client rebuild only
now changing packages/custom/client/client.js results in server rebuild
(As a side note, also in 184.108.40.206 a server rebuild is done, when client js is located in packages/custom/client.js so the original problem is much older i suppose)
In our case, also, the packages are essential. We use them to split the application 'vertically', with client and server code for an entire application section residing inside the same package. It's a very neat architecture that can hardly be achieved using only ES6 modules. It allows decoupling the application in independent parts, which can be plugged / unplugged by just adding / removing a package.
Please bring the old behaviour back. The current state of facts makes life really tough when working with 70 - 80 local packages.
This regress has severely impacted our development workflow, any client side change (within packages) will require full server rebuild, basically any change within the package will result in full server restart.
Anyone who is using package based architecture (such as VulcanJS) will be impacted. And any new comers who will not use client folders or developing client side files within packages will also be impacted.
The regress was a side effect of ignoring client/server folders within packages which resulted in the client watchSets being impacted. Given that Meteor isomorphic package system is one of its biggest advantages, I think resolving this should really be prioritized.
I think benjamin has the the right solution in mind:
Hopefully this get resolved soon, I tried to look into it but it's not clear to me how Meteor sorts the server/client files when building the packages.
Meanwhile, what workarounds are you guys using if any?