Currently, those modules ship with the platform. Example, cordova-ios will have all necessary modules bundled in. When you create a cordova project and add a platform, it takes those modules and moves them into your newly created cordova project. To have the cordova project run `npm install` and install those modules would require us include those modules in a project level `package.json` file for every cordova project that adds that platform. This would confuse developers for sure. I don't think we would have to modify requires to have this work.
To run `npm install` on those directories would also be very poor practice. By those directories, I assume you mean `MYCORDOVAPROJECT/platforms/ios/cordova` (this is where necessary node_modules from cordova-ios get copied). It would mean we would have to have a `package.json` be copied from `cordova-ios` into `MyCordovaProject/platforms/ios/cordova`. A cordova project would then at least have as many package.json files as platforms have been added. I think this is poor practice. Your usecase of npm linking modules in platforms (cordova-ios/node_modules) that then get copied into `MYCORDOVAPROJECT/platforms/ios/cordova` is unique. I still think the best solution is to add some sort of check to make sure you haven't npm linked or handle the npm linked case when copying. Guess this problem will arise more often with cordova-common. That usecase pretty much only affects cordova contributors. -Steve On Wed, Oct 28, 2015 at 1:18 PM, Dmitry Blotsky <dblot...@microsoft.com> wrote: > Is it possible to do “npm install” in those directories instead? Or to > adjust the path so that require() works with the original node_modules > directory? > > Kindly, > Dmitry > > > On Oct 27, 2015, at 10:31 PM, Steven Gill <stevengil...@gmail.com> > wrote: > > > > I don't think we thought of symlinks in this usecase. Probably worth > adding > > in code that checks for symlinks before the copy. I don't see us removing > > this copy as the cordova scripts (build, run, install, etc) require those > > modules. > > > > On Tue, Oct 27, 2015 at 9:24 PM, Dmitry Blotsky <dblot...@microsoft.com> > > wrote: > > > >> Ping. Anyone have any information on this? Is it safe to "cp -r” a > >> node_modules directory? > >> > >> Kindly, > >> Dmitry > >> > >>> On Oct 26, 2015, at 3:06 PM, Dmitry Blotsky <dblot...@microsoft.com> > >> wrote: > >>> > >>> Hey folks, > >>> > >>> I’ve come across a bug with symlinks and platform installation > recently. > >> The point of interest is this line: > >> > https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fgithub.com%2fapache%2fcordova-ios%2fblob%2f4039aeb6f87c6803df5814b8cdefb8c2058504a0%2fbin%2flib%2fcreate.js%23L93.&data=01%7c01%7cdblotsky%40microsoft.com%7c2b31253a23cc4d165ed808d2de51c9ef%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=cyXGPBQPr9v46gc6DMDeC9zZkzda8bSCIoinEyAmKrs%3d > >>> > >>> Is copying node_modules a safe operation? In my case there was a > >> relative symlink inside it when it was copied and as a result some > >> dependencies broke. The symlink was created by a previous invocation of > >> “npm link”. > >>> > >>> Kindly, > >>> Dmitry > >> > >> > >