mirror of
https://github.com/pnpm/pnpm.git
synced 2026-03-24 01:51:41 -04:00
* feat: drop Node.js <= 6.3 support BREAKING CHANGE: drop support of Node.js pre-6.3 * refactor: remove the redundant subfolder in store * refactor: rename linkPeers * refactor: remove not used code * feat: link each file separately * refactor: change store structure * refactor: resolve github dependencies to commits * chore(package.json): pass --preserve-symlinks to ts-node * test: temporarily skip failing tests * refactor(git): use more human-friendly Git IDs * refactor: resolve * refactor: divide resolution and fetching * refactor(fetch): better variable naming * feat: add shrinkwrap.yaml * test(shrinkwrap): shrinkwrap locks dependencies * style: fix typing issue * fix(fetch): properly link node_modules on repeat install * refactor: comment skipped test with single-line comments * fix: circular symlinks are avoided * refactor(fetch): remove redundant type properties * test: additional check for circular symlinks * feat: saving dependency graph in node_modules instead of in store BREAKING CHANGE: Dependency graph moved out from store * feat: add store.yaml with info about dependent projects * refactor: remove name from FetchedPackage * refactor: change the location of packages from npm in store BREAKING CHANGE: Structure of store changed * refactor: change global store path BREAKING CHANGE: Move the store path out of ~/.pnpm * refactor: remove justFetched from FetchedPackage * refactor(install): use functional programming to filter deps * refactor(install): remove redundant node_modules creation * fix(install): installation of concurent circular dependencies * feat: copy not link some packages Packages that have install lifecycle events are copied not linked. * fix(store.yaml): don't duplicate records * perf: resolve a package only once per project * test: concurrent installation of the same dependency * fix: packages are not removed in the middle of fetch * fix: dependencies are linked only once * fix: make linking work on Windows * fix: installing local dependencies on Windows * fix: don't reinstall dependencies of the same package * fix(bin): the run function always returns a Promise * fix: use hard links to link files to the .resolutions folder * fix: peers are linked into the correct location * fix: bundled dependencies are not reinstalled * refactor: remove unsymlink It is not used anymore * chore(CI): test on Node.js v4 as well * refactor: use UPPER_CASE for constants * chore(package): return support of Node.js v4 * fix: make pnpm Node.js 4 compatible again * test: don't run tsnode with --preserve-symlinks --preserve-symlinks makes tests fail on Node.js 4 * fix(bin): don't use --preserve-symlinks on Node pre-6.3 * test: use global stores in tests * fix: flat-tree installation should not work on Node 4 * fix: show warning When trying to install into a node_modules created by older pnpm * refactor: change the global store location From `~/.store` to `~/.pnpm-store` * docs: note that some of the info is out of date * test: fix typing error * test: fix frequently failing test
64 lines
1.8 KiB
TypeScript
64 lines
1.8 KiB
TypeScript
import {cleanCache, installPkgs, install} from '../src'
|
|
import {add as addDistTag} from './support/distTags'
|
|
import testDefaults from './support/testDefaults'
|
|
import tape = require('tape')
|
|
import promisifyTape from 'tape-promise'
|
|
import exists = require('exists-file')
|
|
import path = require('path')
|
|
import prepare from './support/prepare'
|
|
|
|
const test = promisifyTape(tape)
|
|
|
|
test('cache clean removes cache', async function (t) {
|
|
prepare(t)
|
|
|
|
const opts = testDefaults({global: true})
|
|
|
|
await installPkgs(['is-positive'], opts)
|
|
|
|
const cache = path.join(opts.globalPath, 'cache')
|
|
|
|
t.ok(await exists(cache), 'cache is created')
|
|
|
|
await cleanCache(opts.globalPath)
|
|
|
|
t.ok(!await exists(cache), 'cache is removed')
|
|
})
|
|
|
|
test('should fail to update when requests are cached', async function (t) {
|
|
const project = prepare(t)
|
|
|
|
const latest = 'stable'
|
|
const cacheTTL = 60 * 60
|
|
|
|
await addDistTag('dep-of-pkg-with-1-dep', '100.0.0', latest)
|
|
|
|
await installPkgs(['pkg-with-1-dep'], testDefaults({save: true, tag: latest, cacheTTL}))
|
|
|
|
await project.storeHas('dep-of-pkg-with-1-dep', '100.0.0')
|
|
|
|
await addDistTag('dep-of-pkg-with-1-dep', '100.1.0', latest)
|
|
|
|
await install(testDefaults({depth: 1, tag: latest, cacheTTL}))
|
|
|
|
await project.storeHas('dep-of-pkg-with-1-dep', '100.0.0')
|
|
})
|
|
|
|
test('should skip cahe even if it exists when cacheTTL = 0', async function (t) {
|
|
const project = prepare(t)
|
|
|
|
const latest = 'stable'
|
|
|
|
await addDistTag('dep-of-pkg-with-1-dep', '100.0.0', latest)
|
|
|
|
await installPkgs(['pkg-with-1-dep'], testDefaults({save: true, tag: latest, cacheTTL: 60 * 60}))
|
|
|
|
await project.storeHas('dep-of-pkg-with-1-dep', '100.0.0')
|
|
|
|
await addDistTag('dep-of-pkg-with-1-dep', '100.1.0', latest)
|
|
|
|
await install(testDefaults({depth: 1, tag: latest, cacheTTL: 0}))
|
|
|
|
await project.storeHas('dep-of-pkg-with-1-dep', '100.1.0')
|
|
})
|