programing

패키지를 편집합니다.명령줄의 json

closeapi 2023. 3. 27. 21:16
반응형

패키지를 편집합니다.명령줄의 json

패키지에 변수를 추가하거나 편집하려고 합니다.셸 스크립트의 json.그래서 내가 소포를 가지고 있다면.json은 다음과 같습니다.

{
  "name": "my-project",
  "description": "Project by @DerZyklop",
  "version": "0.0.0",
  ...

나는 다음과 같은 명령을 원한다.

npm config set foo bar

다음과 같은 새로운 분야를 추가하다

{
  "name": "my-project",
  "description": "Project by @DerZyklop",
  "foo": "bar",
  "version": "0.0.0",
  ...

...하지만 아쉽게도npm config set편집만 하면 됩니다.~/.npmrc그리고 내 패키지는 아니야.json.

package.json그냥...json파일을 작성하면 도구를 사용할 수 있습니다.인스톨 하려면 , 다음의 순서에 따릅니다.

npm install -g json

그런 다음 파일을 내부 편집할 수 있습니다.자세한 내용은 이쪽.

$ cat package.json
{
  "name": "my-project",
  "description": "Project by @DerZyklop",
  "version": "0.0.0"
}

$ json -I -f package.json -e "this.foo=\"bar\""
json: updated "package.json" in-place

$ cat package.json
{
  "name": "my-project",
  "description": "Project by @DerZyklop",
  "version": "0.0.0",
  "foo": "bar"
}

네이티브 NPM 명령어가 있습니다.

npm pkg set 'scripts.test'='jest'

명령어를 공유할 때 매우 유용합니다.다른 사용자에게 CLI 도구 설치를 요청하는 대신 이 도구를 공유할 수 있습니다.

참고로 NPM 워크스페이스를 사용하면 모든 패키지를 함께 변경할 수 있습니다.

npm pkg set 'scripts.test'='jest' -ws

아무것도 인스톨 하고 싶지 않은 경우는, 1 행의 스크립트를 사용하고, 이 스크립트를 수정하는 것도 가능합니다.package.json:

node -e "let pkg=require('./package.json'); pkg.homepage='${CI_PAGES_URL}'; require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2));"

스펀지나 json설치하지 않으시면

echo "`jq '.foo="bar"' package.json`" > package.json

다음과 같이 jq와 sponge(moreutils 패키지)를 사용할 수도 있습니다.

jq '.foo="bar"' package.json | sponge package.json

환경변수를 사용하는 경우:

jq --arg h "$HOMEPAGE" '.homepage=$h' package.json | sponge package.json

업데이트하고 싶은 것은version에 있어서의 재산.package.json그리고 이게 나한테 효과가 있었어

# this sets the version 
# in package.json to 1.0.2
npm version 1.0.2 # creates a git-tag too
npm version 1.0.2 --no-git-tag-version # only changes the version without creating a git-tag

이것을 하기 위한 npm 패키지도 있습니다.npe: https://github.com/zeke/npe

cd some/node/project

# Get stuff from package.json
npe name
npe scripts
npe scripts.test
npe repository.url
open $(npe repository.url)

# Set stuff in package.json
npe name foo
npe scripts.start "node index.js"

# Keywords string will be turned into an array
# If commas are present, they'll be the delimiter. Otherwise spaces.
npe keywords "foo, bar, cheese whiz"
npe keywords "foo bar baz"

# The current working directory's package.json is used by default,
# but you can point to another package file with a flag:
npe name --package=some/other/package.json
npe name other --package=some/other/package.json

언급URL : https://stackoverflow.com/questions/25329241/edit-package-json-from-command-line

반응형