mirror of
https://github.com/pnpm/pnpm.git
synced 2026-04-28 02:53:15 -04:00
Merge pull request #107 from iamstarkov/feat/sorted-deps
Feature: sorted deps
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
var writeFile = require('mz/fs').writeFile
|
||||
var requireJson = require('./fs/require_json')
|
||||
var sortedObject = require('sorted-object')
|
||||
|
||||
module.exports = function save (pkg, installedPackages, saveType, useExactVersion) {
|
||||
var packageJson = requireJson(pkg.path)
|
||||
@@ -8,6 +9,7 @@ module.exports = function save (pkg, installedPackages, saveType, useExactVersio
|
||||
var semverCharacter = useExactVersion ? '' : '^'
|
||||
packageJson[saveType][dependency.spec.name] = semverCharacter + dependency.version
|
||||
})
|
||||
packageJson[saveType] = sortedObject(packageJson[saveType])
|
||||
|
||||
return writeFile(pkg.path, JSON.stringify(packageJson, null, 2) + '\n', 'utf8')
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"registry-url": "3.0.3",
|
||||
"rimraf": "2.5.1",
|
||||
"semver": "5.1.0",
|
||||
"sorted-object": "^1.0.0",
|
||||
"supports-color": "^3.1.2",
|
||||
"tar-fs": "1.10.0",
|
||||
"thenify": "3.1.1",
|
||||
|
||||
@@ -209,9 +209,9 @@ test('saveDev scoped module to package.json (@rstacruz/tap-spec)', function (t)
|
||||
}, t.end)
|
||||
})
|
||||
|
||||
test('multiple save to package.json with `exact` versions (@rstacruz/tap-spec & rimraf@2.5.1)', function (t) {
|
||||
test('multiple save to package.json with `exact` versions (@rstacruz/tap-spec & rimraf@2.5.1) (in sorted order)', function (t) {
|
||||
prepare()
|
||||
install(['@rstacruz/tap-spec@latest', 'rimraf@2.5.1'], { quiet: true, save: true, saveExact: true })
|
||||
install(['rimraf@2.5.1', '@rstacruz/tap-spec@latest'], { quiet: true, save: true, saveExact: true })
|
||||
.then(function () {
|
||||
var tapSpec = require(join(process.cwd(), 'node_modules', '@rstacruz/tap-spec'))
|
||||
t.ok(typeof tapSpec === 'function', 'tapSpec() is available')
|
||||
@@ -222,10 +222,11 @@ test('multiple save to package.json with `exact` versions (@rstacruz/tap-spec &
|
||||
var pkgJson = fs.readFileSync(join(process.cwd(), 'package.json'), 'utf8')
|
||||
var dependencies = JSON.parse(pkgJson).dependencies
|
||||
var expectedDeps = {
|
||||
rimraf: '2.5.1',
|
||||
'@rstacruz/tap-spec': '4.1.1'
|
||||
'@rstacruz/tap-spec': '4.1.1',
|
||||
rimraf: '2.5.1'
|
||||
}
|
||||
t.deepEqual(dependencies, expectedDeps, 'tap-spec and rimraf have been added to dependencies')
|
||||
t.deepEqual(Object.keys(dependencies), Object.keys(expectedDeps), 'tap-spec and rimraf have been added to dependencies in sorted order')
|
||||
|
||||
t.end()
|
||||
}, t.end)
|
||||
|
||||
Reference in New Issue
Block a user