-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The dev-plugin-install & -create tasks should manage to dedupe CKE5 dependencies #43
Comments
I've been trying to imagine once again all the typical scenarios. I think the list below describe them well. A. Cloning the
|
Thanks for the analysis, this looks like a way to go. However, I've manually performed steps from point D and it looks like npm is skipping modules that are linked with warning |
I think they were. But you must have this thing specified in your |
Turns out that if in
Then
At this point in There's a problem though – it works only for the first time. E.g. if On the other hand, it's not that big issue. In your typical development workflow you either have all CKEditor 5 plugins installed through NPM and then you can simply do in In the development mode you have most of the frequently changing modules cloned and symlinked, so pulling latest changes is enough to get the latest versions. Other ones (like 3rd party modules) you can update less often by "hard-resetting" the dev env (we can have a command for that). So it seems that my workflow proposal needs some updates. I'll post them later. |
@szymonkups had an idea that while running the tasks we can temporarily update |
PR includes: Tests can be started by |
I just realized that during plugin installation we need to install |
Could you perhaps sum up this conversation? I started reading it, but it's long :) |
Basically this thread shows what many different problems other developers have when they're dealing with NPM and local dependencies. Unfortunately, all the issues described there are somewhere near our problems but not exactly the same. Last comment there is written not that long ago and I was hoping that discussion will move further. |
I've been trying to imagine once again all the typical scenarios. I think the list below describe them well. Initial notes
A. Cloning the
|
I updated my pull request to latest scenarios described above. The |
I've checked some of the tasks and our plan seems to work :). It's sad though how much time it will take to install the whole project in the dev version... Fortunately you'll need to do this just once and then add couple of modules from time to time. |
Fixed by #46. Well done! |
I've just realised that the current way how we install plugins, by bypassing NPM a bit means that we'll have duplicated dependency and in a result a huge mess. In order to be able to keep all repos just once in the file system, we need to use
npm link
for everything (edit: turns out that it's not true).Example:
ckeditor5-classiccreator
,../
and linking it inckeditor5/node_modules/
,npm install
inckeditor5-classiccreator
repo,grunt
and some common dev modules installation as the number of plugins,ckeditor5-classiccreator
may requireckeditor5-toolbar
which should also be installed once, even if it's used by 100 other plugins.Therefore, every single CKEditor5 dependency needs to be kept in
../
automatically. Either from the beginning (from the moment whenclassiccreator
needed it) or from the moment when someone wanted to start working on it.The text was updated successfully, but these errors were encountered: