배포 파일로 npm 패키지를 게시하려면 어떻게 해야 합니까?
저는 배포 파일뿐만 아니라 제 소스가 포함된 annpm 패키지를 게시하고 싶습니다.내 GitHub 저장소에 다음이 포함됩니다.srcJavaScript 원본 파일이 들어 있는 폴더입니다.빌드 프로세스가 생성합니다.dist배포 파일이 들어 있는 폴더입니다.물론, 그.dist폴더가 GitHub 리포지토리에 체크인되지 않았습니다.
다른 사용자가 게시할 때와 같은 방식으로 annpm 패키지를 게시하려면 어떻게 해야 합니다.npm install그들이 얻는src게다가dist폴더?현재 실행 중npm publish내 Git 저장소에서, 그것은 오직.src게시 중인 폴더입니다.
내 소포.json 파일은 다음과 같습니다.
{
"name": "join-js",
"version": "0.0.1",
"homepage": "https://github.com/archfirst/joinjs",
"repository": {
"type": "git",
"url": "https://github.com/archfirst/joinjs.git"
},
"main": "dist/index.js",
"scripts": {
"test": "gulp",
"build": "gulp build",
"prepublish": "npm run build"
},
"dependencies": {
...
},
"devDependencies": {
...
}
}
당신이npm publish만약 당신이 없다면.npmignore파일, npm은 당신을 사용할 것입니다..gitignore파일(당신의 경우는 제외했습니다.dist폴더)를 선택합니다.
문제를 해결하려면 다음을 작성합니다..npmignore사용자를 기반으로 한 파일.gitignore파일(dist 폴더를 무시하지 않음).
패키지의 "파일" 필드를 살펴봅니다.json 파일: 패키지.json, 파일
설명서에서 다음을 참조하십시오.
파일 필드는 프로젝트에 포함할 파일의 배열입니다.배열에 있는 폴더의 이름을 지정하면 해당 폴더 내의 파일도 포함됩니다. (다른 규칙에 의해 무시되지 않는 한)
스크립트에서 데이터 파일을 사용하는 방법에 대한 최소한의 예
또 다른 일반적인 사용 사례는 스크립트에서 사용해야 하는 데이터 파일이 있는 경우입니다.
다음에서 언급한 기술을 사용하여 쉽게 이 작업을 수행할 수 있습니다. *내 것이 아닌 *내 것이 아닌* 요구를 통해 로드한 모듈의 경로를 얻는 방법(예: 일부 node_module에서).
전체 예는 다음에서 확인할 수 있습니다.
- 출처: cirosantilli/linux-kernel-module-cheat/npm/data-files/
- 게시됨: cirosan tilli-data-files
이 설정을 사용하면 파일이mydata.txt에 투입됨node_modules/cirosantilli-data-files/mydata.txt설치 후에, 우리는 그것을 우리의 것에 추가했기 때문입니다.files:의 참가.package.json.
우리의 기능myfunc그런 다음 파일을 찾고 파일의 내용을 사용할 수 있습니다.require.resolve실행 파일에서도 작동합니다../cirosantilli-data-files물론이야.
꾸러미제이손
{
"bin": {
"cirosantilli-data-files": "cirosantilli-data-files"
},
"license": "MIT",
"files": [
"cirosantilli-data-files",
"mydata.txt",
"index.js"
],
"name": "cirosantilli-data-files",
"repository": "cirosantilli/linux-kernel-module-cheat",
"version": "0.1.0"
}
mydata.txt
hello world
index.js
const fs = require('fs');
const path = require('path');
function myfunc() {
const package_path = path.dirname(require.resolve(
path.join('cirosantilli-data-files', 'package.json')));
return fs.readFileSync(path.join(package_path, 'mydata.txt'), 'utf-8');
}
exports.myfunc = myfunc;
cirossan tilli-data 파일
#!/usr/bin/env node
const cirosantilli_data_files = require('cirosantilli-data-files');
console.log(cirosantilli_data_files.myfunc());
그is-installed-globally그런 다음 패키지는 분산 파일이 로컬로 설치되어 있는지 또는 전체적으로 설치되어 있는지에 따라 분산 파일에 대한 상대 경로를 생성하려는 경우에 유용합니다.npm 패키지가 전체적으로 설치되었는지 로컬로 설치되었는지 확인하는 방법
.npmignore 파일 내에서 src와 dist를 언급하지 않고 node_dist 내부에서 scr과 dist를 가져옵니다.바로 그겁니다.
.gitignore 파일이 있고 .npmignore가 없으면 .gitignore의 내용이 대신 사용됩니다.
언급URL : https://stackoverflow.com/questions/31642477/how-can-i-publish-an-npm-package-with-distribution-files
'codememo' 카테고리의 다른 글
| 빈 값 또는 null 값을 확인하는 가장 좋은 방법 (0) | 2023.05.13 |
|---|---|
| 왜 코어를 써야 하죠?autocolf=git에 참입니까? (0) | 2023.05.13 |
| Angular2 재료 대화 상자에 문제가 있습니다. @NgModule.entryComponents에 추가했습니까? (0) | 2023.05.13 |
| SQL에서 쉼표로 구분된 결과 (0) | 2023.05.13 |
| 자바.java.java유니트에 ClassDefFound 오류 없음 (0) | 2023.05.13 |