로컬 모듈을 npm 패키지 종속성으로 지정하는 방법
패키지에 지정된 타사 모듈(예: 'express')에 대한 일반적인 종속성 집합을 가진 응용 프로그램이 있습니다.json 파일 종속성입니다.예.
"express" : "3.1.1"
나는 나만의 코드를 모듈식으로 구성하고 package.json에 의해 로컬(현재 내가 있는 파일 시스템에 대한 의미) 모듈 세트를 설치하고 싶습니다.다음을 실행하여 로컬 모듈을 설치할 수 있습니다.
npm install path/to/mymodule
하지만, 저는 패키지를 통해 이것을 어떻게 해야 하는지 모르겠습니다.json 종속 구조. --save
이명의옵단입것는다입니하력순히션은령▁putting를 넣는 입니다."mymodule": "0.0.0"
파일 위치를 하지 않음json파일 경로 위치를 하지 않음).node_module.에서 "로컬로합니다.json, 실패합니다(중앙 레지스트리에서 "mymodule"을 찾고 로컬로 보이지 않기 때문입니다).
나는 그것이 그들에게 말할 수 있는 방법이라고 확신합니다."dependencies": {}
파일 시스템 경로에서 설치하기를 원하지만 방법을 알 수 없습니다.
이 문제를 가진 사람이 또 있습니까?감사해요.
npm install
은(는) 이를 지원합니다.
npm install --save ../path/to/mymodule
이 작업을 수행하기 위해mymodule
.package.json
노드 생성 참조JS 모듈.
npm 2.0 기준으로 로컬 종속성은 기본적으로 지원됩니다.비슷한 질문에 대한 다닐로포피의 대답을 보세요.이 질문이 웹 검색 결과에서 매우 높은 순위를 차지하기 때문에 저는 그의 답변을 여기에 복사했습니다.
이 기능은 npm 버전 2.0.0에서 구현되었습니다.예:
{
"name": "baz",
"dependencies": {
"bar": "file:../foo/bar"
}
}
다음 경로도 유효합니다.
../foo/bar
~/foo/bar
./foo/bar
/foo/bar
업데이트 동기화
디렉토리에 있는 패키지를 현재 프로젝트의 심볼 링크로 추가하기 때문에 로컬 패키지의 변경 내용은 자동으로 동기화됩니다.
참조: 패키지의 로컬 종속성.제이손
은 답은다과같습다니음다같▁like▁the니습인 것 같습니다.npm link
: https://docs.npmjs.com/cli/link
나는 결국 깔끔한 방법을 찾지 못해서 라는 디렉토리를 만들었습니다.local_modules
그리고 나서 이 bashscript를 패키지에 추가했습니다.스크립트의 json->사전 설치
#!/bin/sh
for i in $(find ./local_modules -type d -maxdepth 1) ; do
packageJson="${i}/package.json"
if [ -f "${packageJson}" ]; then
echo "installing ${i}..."
npm install "${i}"
fi
done
많은 어려움을 겪은 후에.npm link
command 하지 않고 폴더에 의 복사본을 하기 위한 ), 이 npm . command (node_modules라는 이름의 node_modules라는 이름의 ),
수정에는 두 가지 간단한 단계가 필요합니다.
첫 번째:
npm install lib-manager --save-dev
둘째, 이것을 당신의 것에 추가합니다.package.json
:
{
"name": "yourModuleName",
// ...
"scripts": {
"postinstall": "./node_modules/.bin/local-link"
}
}
자세한 내용은 https://www.npmjs.com/package/lib-manager 을 참조하십시오.누군가에게 도움이 되길 바랍니다.
패키지에 추가하면 됩니다.프로젝트의 json 파일
"package-name" : "path/to/package"
그리고 나서 뛰어요.npm i
프로젝트에서
작업 중에는 단일 저장소에 있는 몇 가지 다른 프로젝트에서 사용되는 공통 라이브러리가 있습니다.원래는 공개된(개인) 버전(npm install --save rp-utils)을 사용했지만 개발 과정에서 불필요한 버전 업데이트가 많이 발생했습니다.라이브러리는 응용프로그램에 대한 자매 디렉토리에 있으며 버전 대신 상대 경로를 사용할 수 있습니다."rp-utils" 대신: 패키지의 "^1.3.34".json 그것은 지금:
{
"dependencies": { ...
"rp-utils": "../rp-utils",
...
rp-sys 디렉터리에 게시 가능한 npm 패키지가 포함되어 있습니다.
다음은 도움이 될 것입니다(라이브러리와 앱이 동일한 상위 폴더를 공유한다고 가정).
라이브러리에서:
npm pack // this will pack the library in a .tgz file
라이브러리가 필요한 앱에서
npm i ../mylibrary/../library-package-X.X.tgz
이렇게 하면 앱에서 다음과 같은 변경 사항이 발생합니다.
package.json
이제 가질 것입니다.
"@mylibrary": "file:../mylibrary/library-package-X.X.tgz",
install-local 사용
로컬 종속성에서 충돌하는 대응 설치에 문제가 있었습니다.사용하여 오류를 해결했습니다.install-local
npm 패키지이 패키지는 심볼 링크를 생성하지 않아 문제가 해결되었습니다.
단계:
- 달려.
npm i -g install-local
- 달려.
npx install-local --save <local-path>
로컬 종속성을 설치할 대상 리포지토리 내부
추가 읽기: https://www.npmjs.com/package/install-local
로컬 패키지를 설치할 때 받은 오류입니다.npm install --save <local-directory>
:
오류: 잘못된 후크 호출입니다.후크는 함수 구성 요소의 본문 내부에서만 호출할 수 있습니다.이 문제는 다음 이유 중 하나로 인해 발생할 수 있습니다.
- React 및 렌더러 버전이 일치하지 않을 수 있습니다(예: React DOM).
- 훅스의 법칙을 어길 수도 있습니다.
- 동일한 앱에 둘 이상의 React 복사본이 있을 수 있습니다.
node_modules에 사전 설치된 모듈을 다른 파일과 함께 게시할 수 있다면 다음과 같이 할 수 있습니다.
// ./node_modules/foo/package.json
{
"name":"foo",
"version":"0.0.1",
"main":"index.js"
}
// ./package.json
...
"dependencies": {
"foo":"0.0.1",
"bar":"*"
}
// ./app.js
var foo = require('foo');
또한 git에 모듈을 저장하고 상위 패키지에 알릴 수도 있습니다.git의 종속성을 설치하는 json: https://npmjs.org/doc/json.html#Git-URLs-as-Dependencies
언급URL : https://stackoverflow.com/questions/15806241/how-to-specify-local-modules-as-npm-package-dependencies
'programing' 카테고리의 다른 글
요소를 배열의 시작 부분으로 푸시하는 가장 쉬운 방법은 무엇입니까? (0) | 2023.05.13 |
---|---|
MongoError 수정 방법: 종료된 세션을 사용할 수 없습니다. (0) | 2023.05.13 |
빈 시도 블록에서 {} 시도를 마지막으로 {} 시도를 사용하는 이유는 무엇입니까? (0) | 2023.05.08 |
https Firefox를 통해 액세스할 때 Azure 웹 사이트에서 SEC_ERROR_OCSP_INVALID_SIGNING_CERT를 반환합니다. (0) | 2023.05.08 |
pg_restore를 실행할 때 "[archiver] 지원되지 않는 버전(1.13) 파일 헤더"를 가져오는 중 (0) | 2023.05.08 |