LINUX.ORG.RU

История изменений

Исправление lbvf50txt, (текущая версия) :

Давайте поговорим о Nushell. Предположим требуется вам поработать с крупным json файлом pachage.json поекта React. Прежде всего этот файл надо скачать на ЭВМ из Сети Итернет.

Нет проблем сохраняем в react_p.json:

~/tmp/nu> http get https://raw.githubusercontent.com/facebook/react/refs/heads/main/package.json |
save react_p.json

Двигаемся далье хотелось бы узнать, что там с линтерами в React в разделе devDependencies. Для этого даже лень еще раз писать название файла можно сделать так.

open *.json | get devDependencies | transpose name value | where ($it.name | str contains lint) 
╭────┬────────────────────────────────────────────────┬─────────────────────────────╮
│  # │                      name                      │            value            │
├────┼────────────────────────────────────────────────┼─────────────────────────────┤
│  0 │ @typescript-eslint/eslint-plugin               │ ^6.21.0                     │
│  1 │ @typescript-eslint/parser                      │ ^6.21.0                     │
│  2 │ eslint                                         │ ^7.7.0                      │
│  3 │ eslint-config-prettier                         │ ^6.9.0                      │
│  4 │ eslint-plugin-babel                            │ ^5.3.0                      │
│  5 │ eslint-plugin-es                               │ ^4.1.0                      │
│  6 │ eslint-plugin-eslint-plugin                    │ ^3.5.3                      │
│  7 │ eslint-plugin-ft-flow                          │ ^2.0.3                      │
│  8 │ eslint-plugin-jest                             │ 28.4.0                      │
│  9 │ eslint-plugin-no-for-of-loops                  │ ^1.0.0                      │
│ 10 │ eslint-plugin-no-function-declare-after-return │ ^1.0.0                      │
│ 11 │ eslint-plugin-react                            │ ^6.7.1                      │
│ 12 │ eslint-plugin-react-internal                   │ link:./scripts/eslint-rules │
│ 13 │ hermes-eslint                                  │ ^0.22.0                     │
╰────┴────────────────────────────────────────────────┴─────────────────────────────╯

Отлично, что нужно. Теперь надо помнять весрюи eslint на 7.7.7.

~/tmp/nu> open react_p.json | # открываем файл
update devDependencies.eslint {"^7.7.7"} | # меняем в Record соответсвующее поле
to json | # конвертируем Record обрано в JSON
save -f react_p.json # пишем обратно, наставиваем на перезаписи --force

Теперь надо проверить все ли правильно записалось.

~/tmp/nu> open react_p.json | get devDependencies.eslint
^7.7.7

Все правально. Вот так легко и непринужденно. Поменяли версю eslint в react_p.json!

Но вдуг какой-то подельник решит тоже перебить в данные в JSON. Такое же может быть. Для этого надо присматривать за react_p.json.

~/tmp/nu> watch react_p.json {|op, path| $"($op) ($path) поменяли json!"}

И теперь на каждое изменение, в термирале будет прихоить уведломление

~/tmp/nu> watch react_p.json {|op, path| $"($op) ($path) поменяли json!"}
Now watching files at "/home/lbvf50txt/tmp/nu/react_p.json". Press ctrl+c to abort.
Write /home/dima/tmp/nu/react_p.json поменяли json!

Исходная версия lbvf50txt, :

Давайте поговорим о Nushell. Ну предположим надо вам поработать с крупным json файлом pachage.json поекта React. Прежде всего этот файл надо скачать на ЭВМ из Сети Итернет.

Нет проблем сохраняем в react_p.json:

~/tmp/nu> http get https://raw.githubusercontent.com/facebook/react/refs/heads/main/package.json |
save react_p.json

Двигаемся далье хотелось бы узнать, что там с линтерами в React в разделе devDependencies. Для этого даже лень еще раз писать название файла можно сделать так.

open *.json | get devDependencies | transpose name value | where ($it.name | str contains lint) 
╭────┬────────────────────────────────────────────────┬─────────────────────────────╮
│  # │                      name                      │            value            │
├────┼────────────────────────────────────────────────┼─────────────────────────────┤
│  0 │ @typescript-eslint/eslint-plugin               │ ^6.21.0                     │
│  1 │ @typescript-eslint/parser                      │ ^6.21.0                     │
│  2 │ eslint                                         │ ^7.7.0                      │
│  3 │ eslint-config-prettier                         │ ^6.9.0                      │
│  4 │ eslint-plugin-babel                            │ ^5.3.0                      │
│  5 │ eslint-plugin-es                               │ ^4.1.0                      │
│  6 │ eslint-plugin-eslint-plugin                    │ ^3.5.3                      │
│  7 │ eslint-plugin-ft-flow                          │ ^2.0.3                      │
│  8 │ eslint-plugin-jest                             │ 28.4.0                      │
│  9 │ eslint-plugin-no-for-of-loops                  │ ^1.0.0                      │
│ 10 │ eslint-plugin-no-function-declare-after-return │ ^1.0.0                      │
│ 11 │ eslint-plugin-react                            │ ^6.7.1                      │
│ 12 │ eslint-plugin-react-internal                   │ link:./scripts/eslint-rules │
│ 13 │ hermes-eslint                                  │ ^0.22.0                     │
╰────┴────────────────────────────────────────────────┴─────────────────────────────╯

Отлично, что нужно. Теперь надо помнять весрюи eslint на 7.7.7.

~/tmp/nu> open react_p.json | # открываем файл
update devDependencies.eslint {"^7.7.7"} | # меняем в Record соответсвующее поле
to json | # конвертируем Record обрано в JSON
save -f react_p.json # пишем обратно, наставиваем на перезаписи --force

Теперь надо проверить все ли правильно записалось.

~/tmp/nu> open react_p.json | get devDependencies.eslint
^7.7.7

Все правально. Вот так легко и непринужденно. Поменяли версю eslint в react_p.json!

Но вдуг какой-то подельник решит тоже перебить в данные в JSON. Такое же может быть. Для этого надо присматривать за react_p.json.

watch react_p.json {|op, path| $"($op) ($path) поменяли json!"}

И теперь на каждое изменение, в термирале будет прихоить уведломление

~/tmp/nu> watch react_p.json {|op, path| $"($op) ($path) поменяли json!"}
Now watching files at "/home/lbvf50txt/tmp/nu/react_p.json". Press ctrl+c to abort.
Write /home/dima/tmp/nu/react_p.json поменяли json!