On Sep 17, 2014, at 9:54 AM, Andrew Grieve <[email protected]> wrote:

>> 2) directory install:
>> npm install ../cordova-js

> We've been bit before by this scenario as well. I believe the shrinkwrap
> will record that cordova-js is located at "../cordova-js" instead of from
> the registry in this case.

Now that I take a closer look in this scenario at the "from" field in the 
shrinkwrap I see that you are correct. This would imply that I would first need 
to "npm publish cordova-js" before I could do a clean install of the 
cordova-lib dependencies and create the shrinkwrap for cordova-lib. And then 
the same to "npm publish cordova-lib" before I could do a clean install of the 
cordova-cli dependencies and create the shrinkwrap for cordova-cli. And that 
would mean an npm publish is a pre-req to building an rc before posting it to 
dist-dev. Am I reading this right? (I'm hoping someone will tell me I am wrong, 
because I don't like that path.)

Hmm, I'm wondering if this tool might be helpful: 
https://www.npmjs.org/package/npm-shrinkwrap . Playing with it for just a 
moment, it does remove the "from" field and leaves the "resolved" field in the 
shrinkwrap. But the resolved field requires that the versioned dependency 
(i.e., cordova-js) be published in the npm repo, and will error if it isn't 
there. So it's not a full answer.

A couple related bugs:
https://github.com/npm/npm/issues/3145
https://github.com/npm/npm/issues/3581

Aaargh! 

I'm left with the impression that we way we do dependencies in our tools and 
then do a simultaneous release just doesn't fit well with npm's notion of 
write-once publishing and creating shrinkwrap, especially creating shrinkwrap. 
I am very curious to see what Steve thinks about all this when he gets back.

>> 3) registry install:
>> npm install cordova-js (fetches from registry)
>> 
> ^^ Shouldn't need this step right? since "npm install" will grab it from
> the registry anyways.

Correct. I was just doing this locally to see what a user's experience would be.

Reply via email to