Currently when installing jss for dev, jss-nested is installed, but jss-extend is not. This is weird because jss-extend is in devDependencies of jss-nested. This causes tests break.
This was introduced recently as jss-nested added jss-extend as a dependency to the tests.
cc @johann-sonntagbauer any idea?
i will take a look
Well npm doesn't install transitive dev-dependencies. Therefor the current test situation will not work. I have to dig a little deeper to find a solution for this.
I think the only solution would be to add jss-extend to the devDependencies of jss as well. What do you think @kof
I think it will soon hit something else when we add new dependency to any plugin.
The test strategy in jss-nested is somehow mixed up, maybe it would be wise to shift the "integration" test with jss-extend to jss project.
yeah, that would work, also I have an issue to make more such tests anyways!
However it still bothers me that we can't have transitive dev dependencies, what if the next time we want to use some stubbing library or something else in one of plugins.
yep thats a problem. Thats one reason why mono repos are so popular these days. They often maintain the dev dependencies in the top most package.json
Never the less I fear we have only the one option to shift the test to jss project and remove the dev dependency from jss-nested
or introduce jss-extend as a devDependency in jss as well ....
or use depencencies in jss-nested for jss-extend ...
or introduce jss-extend as a devDependency in jss as well ....
would be the better one
the problem might be in keeping versions in sync ...
added jss-extend ..
On the other hand, as @just-boris mentioned on twitter, if we need transitive devDependencies installed, they are not really devDependencies and should be moved as I suggested to dependencies.
hm, I don't want to be too exact here, but the dependency of jss-extend in jss-nested is only because of the tests, to model an integration scenario. But I am fine with the dependency
Yeah thats the problem. Once we run code that was intended to be used for dev only, this code becomes a public api and its dependencies are not dev any more.
Going for the actually "wrong" way - installing devDependencies in jss for all plugins. Because I don't want dependencies of plugins contain all the testing dependencies, which will be installed on user machines, because it may be very slow.
Most helpful comment
On the other hand, as @just-boris mentioned on twitter, if we need transitive devDependencies installed, they are not really devDependencies and should be moved as I suggested to dependencies.