package.json을 수동으로 편집해야합니까? npm과 같은 프로그램은 파일을 살펴보고 "require"문을 참조한 다음이를 사용하여 package.json 파일에 필요한 항목을 넣을 수 없습니까? 그런 프로그램이 있습니까?
package.json을 수동으로 편집해야합니까? npm과 같은 프로그램은 파일을 살펴보고 "require"문을 참조한 다음이를 사용하여 package.json 파일에 필요한 항목을 넣을 수 없습니까? 그런 프로그램이 있습니까?
답변:
package.json 파일은 npm 에서 node.js 프로젝트에 대해 학습 하는 데 사용됩니다 .
npm init
package.json 파일을 생성하는 데 사용하십시오 !
npm과 함께 제공됩니다. https://docs.npmjs.com/cli/init에서 설명서를 읽으십시오.
또한이 파일을 프로그래밍 방식으로 생성하는 데 사용할 수있는 공식 도구가 있습니다 : https://github.com/npm/init-package-json
npm init
내가 찾던 것이 바로 감사 였습니다! 또한 그 후 나는 보통 파일 npm shrinkwrap
을 생성하기 위해 실행npm-shrinkwrap.json
npm init
: npm install <pkg> --save
나중에 패키지를 설치하고 package.json 파일에 종속성으로 저장하는 데 사용 합니다.
npm init
Visual Studio 2015의 패키지 관리자 콘솔에서 실행 한 후에 는 [...] Press ^C at any time to quit.
아무것도 묻거나 json 파일을 만들지 않고 표시 및 중지됩니다. 뭔가 빠졌습니까?
npm init --force --yes
이 파일을 생성 한 하나의 라이너
먼저 실행
npm init
... 프로젝트 / 패키지에 대해 몇 가지 질문을하고 ( 먼저 읽고 ) package.json 파일을 생성하십시오.
그런 다음 package.json 파일이 있으면
npm install <pkg> --save
또는
npm install <pkg> --save-dev
... 종속성을 설치하고 자동으로 추가 할 수 package.json
의 dependencies
목록입니다.
(참고 : 종속성에 따라 버전 범위를 수동으로 조정해야 할 수도 있습니다.)
package.json
일반적으로 자동으로 처리됩니다.
--save
최신 npm 버전에서는 더 이상 필요하지 않습니다
방금 ./node_modules에서 종속성을 수집하는 간단한 스크립트를 작성했습니다. 그것은 현재 나의 요구 사항을 충족시킵니다. 이것은 다른 사람들에게 도움이 될 수 있습니다.
var fs = require("fs");
function main() {
fs.readdir("./node_modules", function (err, dirs) {
if (err) {
console.log(err);
return;
}
dirs.forEach(function(dir){
if (dir.indexOf(".") !== 0) {
var packageJsonFile = "./node_modules/" + dir + "/package.json";
if (fs.existsSync(packageJsonFile)) {
fs.readFile(packageJsonFile, function (err, data) {
if (err) {
console.log(err);
}
else {
var json = JSON.parse(data);
console.log('"'+json.name+'": "' + json.version + '",');
}
});
}
}
});
});
}
main();
제 경우에는 위의 스크립트가 출력됩니다.
"colors": "0.6.0-1",
"commander": "1.0.5",
"htmlparser": "1.7.6",
"optimist": "0.3.5",
"progress": "0.1.0",
"request": "2.11.4",
"soupselect": "0.2.0", // Remember: remove the comma character in the last line.
이제 복사하여 붙여 넣을 수 있습니다. 즐기세요!
npm ls --depth=0
은 거의
a
, 패키지는 a
패키지를 필요로 b
하고 c
모든 수준, 그래서이 스크립트가 출력을 a
, b
, c
인 하지 올바른. 출력 만해야 a
합니다. 하위 패키지는 자동으로 해결됩니다.
npm init
package.json 파일을 만든 다음
ls node_modules/ | xargs npm install --save
node_modules 폴더에있는 모듈을 채우십시오.
편집 : @paldepind는 npm init
이제 node_modules / 폴더에있는 것을 자동으로 추가 하기 때문에 두 번째 명령이 중복된다고 지적했습니다 . 이것이 항상 사실인지는 모르지만 적어도 두 번째 명령없이 작동합니다.
npm init
설치된 패키지를 기반으로 종속성을 자동으로 추가했으며 두 번째 명령을 실행할 필요가 없다는 것을 알았습니다.
npm dedupe
모듈을 사용할 때 모듈간에 공유되는 종속성을 가져 와서 node_modules
디렉토리 의 최상위 레벨에 저장하는을 사용할 때 매우 유용 합니다 . 그러나 만지지 않습니다 package.json
! 이를 통해 중복 제거 된 설정을 커밋하고 공유 할 수 있습니다.
커맨드 라인 :
npm init
package.json 파일을 생성합니다
package.json 파일에 종속 패키지를 설치, 업데이트 및 설치 제거하려면 다음을 수행하십시오.
커맨드 라인 :
npm install <pkg>@* --save
의존성에 따라 패키지의 최신 버전을 package.json 파일에 자동으로 추가합니다.
전의:
npm install node-markdown@* --save
커맨드 라인 :
npm install <pkg> --save
또한 종속성에 따라 패키지의 최신 버전을 package.json 파일에 자동으로 추가합니다.
패키지에 특정 버전이 필요한 경우 다음 명령 줄을 사용하십시오 .
npm install <pkg>@<version> --save
의존성에 따라 특정 버전의 패키지를 package.json 파일에 자동으로 추가합니다.
전의:
npm install koa-views@1.0.0 --save
패키지에 특정 버전의 버전이 필요한 경우 다음 명령 줄을 사용하십시오 .
npm install <pkg>@<version range>
종속성이있는 버전 범위 사이에서 패키지의 최신 버전을 package.json 파일에 자동으로 추가합니다.
전의:
npm install koa-views@">1.0.0 <1.2.0" --save
패키지 npm Doc의 버전을 작성하는 방법에 대한 자세한 내용
커맨드 라인 :
npm update --save
패키지를 package.json 파일로 업데이트하고 종속성이있는 모든 패키지의 업데이트 된 버전을 package.json 파일에 자동으로 추가합니다.
커맨드 라인 :
npm uninstall <pkg> --save
의존성에서 package.json 파일로 패키지를 자동으로 제거하고 node_module 폴더에서 패키지를 제거합니다.
이제 Yeoman-Modern Web App 발판 도구를 사용할 수 있습니다 3 단계 만 거치면 노드 터미널에서 을 .
먼저 yo 및 기타 필요한 도구를 설치해야합니다.
$ npm install -g yo bower grunt-cli gulp
웹 애플리케이션을 스캐 폴딩하려면 generator-webapp 생성기를 설치하십시오 .
$ npm install -g generator-webapp // create scaffolding
요 실행하고 ... 당신은 모두 완료 :
$ yo webapp // create scaffolding
Yeoman은 전체 웹 애플리케이션 또는 컨트롤러 및 모델에 대한 상용구 코드를 작성할 수 있습니다. 편집 및 컴파일을 위해 라이브 프리뷰 웹 서버를 실행할 수 있습니다. 단위 테스트를 실행하고, 코드를 최소화 및 연결하고, 이미지를 최적화하는 등의 작업을 수행 할 수있을뿐만 아니라 ...
Yeoman (yo) -앞서 언급 한 지루한 작업 중 일부를 수행하는 데 사용할 수있는 생성기라고하는 프레임 워크 별 스캐 폴드 에코 시스템을 제공하는 스캐 폴딩 도구입니다.
Grunt / gulp- 프로젝트를 빌드, 미리보기 및 테스트하는 데 사용됩니다.
Bower- 종속성 관리에 사용되므로 더 이상 프런트 엔드 라이브러리를 수동으로 다운로드 할 필요가 없습니다.
경우 당신은 망할 놈 GitHub의 사용자 :
generate-package
보다 간단하게 npm init
.
그밖에
및 / 또는 당신이 좋아하지 않아 package.json
발생 패키지를 그 템플릿 또는npm init
생성 .
스캐 폴딩 앱을 통해 generate , sails 또는 yeoman 과 같은 고유 한 템플릿을 생성 할 수 있습니다 .
이 답변은 2018 년 3 월과 관련이 있습니다. 향후이 답변의 데이터는 더 이상 사용되지 않을 수 있습니다.
이 답변의 작성자는 2018 년 3 월에 개인적으로 생성 패키지를 사용했습니다.
generate-package를 사용하려면 git 및 GitHub를 사용해야합니다.
예를 들어 빈 폴더를 만듭니다 sasha-npm-init-vs-generate-package
.
명령:
D:\SashaDemoRepositories\sasha-npm-init-vs-generate-package>gen package
[16:58:52] starting generate
[16:59:01] √ running tasks: [ 'package' ]
[16:59:04] starting package
? Project description? generate-package demo
? Author's name? Sasha Chernykh
? Author's URL? https://vk.com/hair_in_the_wind
[17:00:19] finished package √ 1m
package.json
:
{
"name": "sasha-npm-init-vs-generate-package",
"description": "generate-package demo",
"version": "0.1.0",
"homepage": "https://github.com/Kristinita/sasha-npm-init-vs-generate-package",
"author": "Sasha Chernykh (https://vk.com/hair_in_the_wind)",
"repository": "Kristinita/sasha-npm-init-vs-generate-package",
"bugs": {
"url": "https://github.com/Kristinita/sasha-npm-init-vs-generate-package/issues"
},
"license": "MIT",
"engines": {
"node": ">=4"
},
"scripts": {
"test": "mocha"
},
"keywords": [
"generate",
"init",
"npm",
"package",
"sasha",
"vs"
]
}
D:\SashaDemoRepositories\sasha-npm-init-vs-generate-package>npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See `npm help json` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
package name: (sasha-npm-init-vs-generate-package)
version: (1.0.0) 0.1.0
description: npm init demo
entry point: (index.js)
test command: mocha
git repository: https://github.com/Kristinita/sasha-npm-init-vs-generate-package
keywords: generate, package, npm, package, sasha, vs
author: Sasha Chernykh
license: (ISC) MIT
About to write to D:\SashaDemoRepositories\sasha-npm-init-vs-generate-package\package.json:
{
"name": "sasha-npm-init-vs-generate-package",
"version": "0.1.0",
"description": "npm init demo",
"main": "index.js",
"scripts": {
"test": "mocha"
},
"repository": {
"type": "git",
"url": "git+https://github.com/Kristinita/sasha-npm-init-vs-generate-package.git"
},
"keywords": [
"generate",
"package",
"npm",
"package",
"sasha",
"vs"
],
"author": "Sasha Chernykh",
"license": "MIT",
"bugs": {
"url": "https://github.com/Kristinita/sasha-npm-init-vs-generate-package/issues"
},
"homepage": "https://github.com/Kristinita/sasha-npm-init-vs-generate-package#readme"
}
Is this ok? (yes) y
{
"name": "sasha-npm-init-vs-generate-package",
"version": "0.1.0",
"description": "npm init demo",
"main": "index.js",
"scripts": {
"test": "mocha"
},
"repository": {
"type": "git",
"url": "git+https://github.com/Kristinita/sasha-npm-init-vs-generate-package.git"
},
"keywords": [
"generate",
"package",
"npm",
"package",
"sasha",
"vs"
],
"author": "Sasha Chernykh",
"license": "MIT",
"bugs": {
"url": "https://github.com/Kristinita/sasha-npm-init-vs-generate-package/issues"
},
"homepage": "https://github.com/Kristinita/sasha-npm-init-vs-generate-package#readme"
}
generate-package
더 간단하게 생각 합니다 npm init
.
npm link