вложенный package.json в рабочих пространствах пряжи - PullRequest
0 голосов
/ 18 октября 2019

При использовании рабочих областей пряжи возможно ли иметь вложенные файлы package.json для разрешения зависимостей для подмножества пакетов? Как избежать повторения?

, где cra - это create-реагировать-приложения, а pkg - это пакеты, которые используют эти сайты. например,

| /
| - package.json
|---- /sites
|-------- /cra-1
|         - package.json
|-------- /cra-2
|         - package.json
|---- /packages
|     - package.json   // <<---- Extra level here
|-------- /pkg-1
|         - package.json
|-------- /pkg-1
|         - package.json
|-------- /pkg-2
|         - package.json

это позволило бы нам обмениваться общими зависимостями для наших пакетов ... держать их все синхронизированными и актуальными

1 Ответ

1 голос
/ 28 октября 2019

Это может работать и с bash-скриптом, но попробуйте это:

var fs = require('fs')
var join = require('path').join
var os = require('os')
var cp = require('child_process')
var resolve = require('path').resolve

// library path
var lib = resolve(__dirname, '../lib/')

fs.readdirSync(lib)
  .forEach(function (mod) {
    var modPath = join(lib, mod)
// ensure path has package.json
if (!fs.existsSync(join(modPath, 'package.json'))) return

// npm binary based on OS
var npmCmd = os.platform().startsWith('win') ? 'npm.cmd' : 'npm'

// install folder
cp.spawn(npmCmd, ['i'], { env: process.env, cwd: modPath, stdio: 'inherit' })
})

Вы можете запустить скрипт через npm и main package.json в вашем корневом каталоге. Сценарий посетит каждый подкаталог и выполнит установку npm.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...