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
> >>
> >>
>
>

Reply via email to