Comments (8)
So, the good news is, since cacache doesn't ever use move-file in such a way as to require making directories, so it doesn't hit the failure case. But still, it would be pretty easy to have a move-file
that didn't rely on fs.promises and recursive fs.mkdir by just adding mkdirp as a dep.
from cacache.
/cc @AnthonyWC @assapir @darcyclarke @ethomson @evilpacket @gordey4doronin @hilli @isaacs @lumaxis @owenniblock @radiantspace @ruyadorno
Somebody can look at this? It is very important.
When did we start using cacache
in webpack we use 15.0.0
version and guaranteed work on 10.13
node, but in 15.0.1
package migrates from move-file
to move-concurrently
92b1251 without major release, but it was breaking change becaise package requires 10.17
node (https://github.com/sindresorhus/move-file/blob/master/package.json#L14). This created problems for many developers (locally and on CI). Yarn doesn't work without additional flags.
I ask you to pay attention to this problem, thanks
from cacache.
The last time we looked into fs.promises it was significantly slower than util.promisify. This is usually not a big deal for apps that only do a few fs calls, but the cli is very fs-heavy and thus those slowdowns were unacceptable.
from cacache.
/cc @isaacs
from cacache.
Yeah, the intent was to support all 10.x versions, so that's definitely an oversight on my part, sorry. I'll take a look this afternoon.
from cacache.
Sorry for commenting on an old issue, but it's probably worth dropping mkdirp now and perhaps switching to fs/promises instead of util.promisify.
from cacache.
Our current preferred way to use fs
is through https://github.com/npm/fs which exports promisified versions of all methods by default, and of course has the polyfills we need for our node support matrix.
from cacache.
Thanks for the explanation! It might be worth switching to that then for all fs methods instead of util.promisify and mkdirp.
from cacache.
Related Issues (20)
- [BUG] TypeError: buckets.map is not a function => app crash HOT 3
- [Feature] Async iterator over ls.stream HOT 2
- какаш 😂🤣
- [BUG] cacache ignores npm cache config HOT 2
- [ISSUE] Explain to me why this is a stupid use of cacache (storing simple key/value pairs with a simplified cacache interface) HOT 4
- [BUG] cacache doesn't work on Android HOT 7
- [BUG] `rm.all` doesn't delete anything on Windows HOT 3
- [QUESTION] Get info by integrity? HOT 1
- [BUG] @npmcli/move-file is dilicated HOT 1
- [BUG] put.stream can crash the process with unhandled exception, even when error handler is attached
- [Vulnerability] [email protected] dependency [email protected] contains memory leak HOT 1
- [FEATURE] custom integrity method / digest algorithm (xxhash) HOT 1
- [BUG] EMFILE error in environment with low file descriptors limit HOT 3
- upgrade tar to 6.2.1 HOT 1
- CVE-2020-7774 HOT 1
- [BUG] Put failed due to TypeError: Data must be a string or a buffer
- [FEATURE] implement reference counting HOT 1
- [BUG] calling verify() should not modify the time property
- Could you help remove the vulnerability in your package? HOT 1
- [BUG] cacache package depends on vulnerable version of tar HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cacache.