Skip to content
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

Failing npm install or npm ci #353

Closed
avdeev opened this issue Feb 4, 2020 · 12 comments
Closed

Failing npm install or npm ci #353

avdeev opened this issue Feb 4, 2020 · 12 comments
Labels

Comments

@avdeev
Copy link
Member

avdeev commented Feb 4, 2020

Since NPM 6.12 (https://github.com/npm/cli/releases/tag/v6.12.0) npm ci and probably npm install runs prepare script for git dependencies. This new behavior calls prepare script before the dependencies are installed and causes an error.

$ npm install

> shower@2.7.0 prepare /Users/alexeyavdeev/projects/shower
> shower prepare --files '**' --files '!{docs,node_modules,prepared}{,/**}' --files '!*.{md,toml,json}'

Error: File not found with singular glob: /Users/alexeyavdeev/projects/shower/node_modules/@shower/core/shower.min.js (if this was purposeful, use `allowEmpty` option)
    at Glob.<anonymous> (/Users/alexeyavdeev/projects/shower/node_modules/glob-stream/readable.js:84:17)
    at Object.onceWrapper (events.js:313:26)
    at Glob.emit (events.js:223:5)
    at Glob._finish (/Users/alexeyavdeev/projects/shower/node_modules/glob/glob.js:197:8)
    at done (/Users/alexeyavdeev/projects/shower/node_modules/glob/glob.js:182:14)
    at Glob._processSimple2 (/Users/alexeyavdeev/projects/shower/node_modules/glob/glob.js:688:12)
    at /Users/alexeyavdeev/projects/shower/node_modules/glob/glob.js:676:10
    at Glob._stat2 (/Users/alexeyavdeev/projects/shower/node_modules/glob/glob.js:772:12)
    at lstatcb_ (/Users/alexeyavdeev/projects/shower/node_modules/glob/glob.js:764:12)
    at RES (/Users/alexeyavdeev/projects/shower/node_modules/inflight/inflight.js:31:16)

I suggest renaming prepare in to something different. For example, we can use build.

Now, we need to use npm install --ignore-scripts to successfully install dependencies.

@pepelsbey
Copy link
Member

pepelsbey commented Feb 5, 2020

I have the following versions of Node and npm and I don’t see any problems with the name of the script:

$ node -v
v13.7.0
~
$ npm -v
6.13.6

Now npm ci runs prepare scripts for git dependencies

I don’t think it means npm run prepare, it’s just a word, not the script name. Isn’t it?

@avdeev
Copy link
Member Author

avdeev commented Feb 6, 2020

@pepelsbey The NPM documentation says this is the default script name.

https://docs.npmjs.com/misc/scripts

prepare: Run both BEFORE the package is packed and published, on local npm install without any arguments, and when installing git dependencies (See below). This is run AFTER prepublish, but BEFORE prepublishOnly.

Maybe this is my mistake. I'll investigate. But renaming prepare to build fixed my error.

@pepelsbey
Copy link
Member

I don’t mind renaming script to build, it would be the safe option. I’ll prepare PR and will ask you for review :)

@pashkes
Copy link

pashkes commented Jul 18, 2020

I have the same error with node.js v14.5.0
I used nvm to toggle node.js v13.7.0

@pepelsbey
Copy link
Member

I tried it with Node v14.7.0 and it worked fine. Could you please test it again? I might be doing it wrong.

~/Projects/Shower/shower on master
$ node -v
v14.7.0
~/Projects/Shower/shower on master
$ npm -v
6.14.7
~/Projects/Shower/shower on master
$ npm install

> @shower/shower@3.0.0 prepare /Users/pepelsbey/Projects/Shower/shower
> shower prepare --files '**' --files '!{docs,node_modules,prepared}{,/**}' --files '!*.{md,toml,json}'

  ✔ Project preparation in progress
Project prepared in prepared dir 🎉
audited 646 packages in 3.284s

19 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

~/Projects/Shower/shower on master
$ npm run prepare

> @shower/shower@3.0.0 prepare /Users/pepelsbey/Projects/Shower/shower
> shower prepare --files '**' --files '!{docs,node_modules,prepared}{,/**}' --files '!*.{md,toml,json}'

  ✔ Project preparation in progress
Project prepared in prepared dir 🎉

@pepelsbey
Copy link
Member

I sat down to fix it, but first I tried to reproduce it. The reason I’m hesitant because the “prepare” word is also used in @shower/cli package and it will require both packages to change API and naming. I’ll do this if there’s no other way, I just want to make sure that it’s inevitable.

@pepelsbey pepelsbey added the bug label Jul 31, 2020
@avdeev
Copy link
Member Author

avdeev commented Jul 31, 2020

@pepelsbey I think you already have a node_modules folder.

Try to:

rm -rf node_modules
npm install

or

git clone ...
npm install

@pepelsbey
Copy link
Member

@avdeev it worked fine

~/Desktop
$ node -v
v14.7.0
~/Desktop
$ npm -v
6.14.7
~/Desktop
$ git clone git@github.com:shower/shower.git
Cloning into 'shower'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 2923 (delta 0), reused 1 (delta 0), pack-reused 2920
Receiving objects: 100% (2923/2923), 14.64 MiB | 7.88 MiB/s, done.
Resolving deltas: 100% (1489/1489), done.
~/Desktop
$ cd shower/
~/Desktop/shower on master
$ npm i

> @shower/shower@3.0.0 prepare /Users/pepelsbey/Desktop/shower
> shower prepare --files '**' --files '!{docs,node_modules,prepared}{,/**}' --files '!*.{md,toml,json}'

  ✔ Project preparation in progress
Project prepared in prepared dir 🎉
added 646 packages from 402 contributors and audited 646 packages in 7.503s

19 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

@avdeev
Copy link
Member Author

avdeev commented Jul 31, 2020

@pepelsbey Now I can't reproduce it either :)

I think you can close the issue

@pepelsbey
Copy link
Member

Let’s wait for @pashkes’s confirmation, just in case :)

@pashkes
Copy link

pashkes commented Jul 31, 2020

@pepelsbey thanks, npm i successfully

Log

➜ slides npm i

undefined prepare /Users/pashkes/Desktop/test-shower/slides
shower prepare

✔ Project preparation in progress
Project prepared in prepared dir 🎉
npm WARN slides No description
npm WARN slides No repository field.
npm WARN slides No license field.

audited 575 packages in 5.231s

19 packages are looking for funding
run npm fund for details

found 0 vulnerabilities

➜ slides node -v
v14.7.0

@pepelsbey
Copy link
Member

Thank you for reporting this :) I’m glad it got somehow resolved without API changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants