Package.jsonは手動で編集されるべきですか? npmのようなプログラムは単にファイルを調べ、「require」ステートメントを見て、それを使用して必要なエントリをpackage.jsonファイルに入れることができませんでしたか?そのようなプログラムはありますか?
Package.jsonファイルは、node.jsプロジェクトについて知るために npm によって使用されます。
npm init
を使用してpackage.jsonファイルを生成してください。
Npmにバンドルされています。こちらのドキュメントを読んでください: https://docs.npmjs.com/cli/init
また、あなたがあなた自身のプロジェクトでプログラム的にこのファイルを生成するために使うことができるツールがあります(それはnpmのメーカーによって作られます): https://github.com/isaacs/init-package-json
最初に実行します
npm init
...あなたのプロジェクト/パッケージについていくつか質問し( 最初に読んでください )そしてそれからあなたのためにpackage.jsonファイルを生成します。
その後、package.jsonファイルを入手したら、次のコマンドを使用します。
npm install <pkg> --save
または
npm install <pkg> --save-dev
...依存関係をインストールし、それをpackage.json
のdependencies
リストに自動的に追加します。
(注:依存関係のためにバージョン範囲を手動で微調整する必要があるかもしれません。)
./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 init
package.jsonファイルを作成してから使用する
ls node_modules/ |xargs npm install --save
node_modulesフォルダーにあるモジュールを入力します。
編集:@paldepindはnpm init
が自動的にあなたのnode_modules /フォルダにあるものを追加するので、2番目のコマンドは冗長であると指摘しました。これが常にそうであるかどうかはわかりませんが、少なくとも今では、2番目のコマンドがなくても機能します。
コマンドライン:
npm init
package.jsonファイルを作成します
依存関係にあるパッケージをpackage.jsonファイルにインストール、更新、およびアンインストールするには、次の手順を実行します。
コマンドライン :
npm install <pkg>@* --save
依存関係にあるパッケージの最新バージョンをpackage.jsonファイルに自動的に追加します。
例:
npm install node-markdown@* --save
コマンドライン:
npm install <pkg> --save
また、依存関係にあるパッケージの最新バージョンをpackage.jsonファイルに自動的に追加します。
ifあなたはパッケージの特定のバージョンが必要ですコマンドライン:
npm install <pkg>@<version> --save
依存関係にあるパッケージの特定のバージョンをpackage.jsonファイルに自動的に追加します。
例:
npm install [email protected] --save
ifあなたはパッケージに特定の範囲のバージョンが必要ですコマンドライン:
npm install <pkg>@<version range>
package.jsonファイルに依存関係にあるバージョンの範囲の間でパッケージの最新バージョンを自動的に追加します
例:
npm install koa-views@">1.0.0 <1.2.0" --save
Forパッケージのバージョンの書き方についての詳細 npm Doc
コマンドライン:
npm update --save
パッケージをpackage.jsonファイルに更新し、依存関係にあるすべてのパッケージの更新バージョンをpackage.jsonファイルに自動的に追加します。
コマンドライン:
npm uninstall <pkg> --save
パッケージを依存関係からpackage.jsonファイルに自動的に削除し、node_moduleフォルダーからパッケージを削除します
npm init -y
を実行すると、あなたのpackage.json
はすべてデフォルトになります。
その後、package.json
を適宜変更できます
これは、npm init
のすべてのコマンドでenter
を押さないようにすることで時間を何度も節約します。
3つの簡単なステップを使用して、ノード端末で Yeoman - Modern Web App足場ツール を使用できるようになりました。
まず、あなたは他の必要なツールをインストールする必要があります。
$ npm install -g yo bower grunt-cli gulp
Webアプリケーションを足場にするには、generator-webappジェネレータをインストールします。
$ npm install -g generator-webapp // create scaffolding
あなたを実行して...あなたはすべて完了です。
$ yo webapp // create scaffolding
Yeomanはあなたのウェブアプリケーション全体あるいはコントローラとモデルの定型コードを書くことができます。編集やコンパイルのためにライブプレビューWebサーバーを起動することができます。単体テストの実行、コードの最小化と連結、画像の最適化などを実行できるだけではありません。
Yeoman(yo) - ジェネレーターと呼ばれるフレームワーク固有の足場のエコシステムを提供する足場ツール。これを使用して、前述の面倒な作業を実行できます。
Grunt / gulp - プロジェクトのビルド、プレビュー、およびテストに使用します。
Bower - は依存関係管理に使われるので、フロントエンドライブラリを手動でダウンロードする必要はもうありません。
Pylinuxの答えに基づいて、以下はWindows OS用の解決策です、
dir node_modules > abc.txt
FOR /F %k in (abc.txt) DO npm install --save
それが役に立てば幸い。
npm init -fコマンドを使用してpackage.jsonファイルを生成し、その後各コマンドの後に--saveを使用して、各モジュールがpackage.json内で自動的に更新されるようにします。npm install express --save
もし ならあなたはgitそしてGitHubユーザー:
generate-package
もっと簡単に言うと、npm init
より。
その他
および/または package.json
テンプレートが好きではありません、generate-packageまたはnpm init
generate:
generate 、 sails または yeoman のように、足場アプリを介して独自のテンプレートを生成できます。
この答えは2018年3月に関連しています。将来、この答えからのデータは時代遅れになるかもしれません。
この回答の作者は2018年3月にgenerate-packageを個人的に使用しました。
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
だと思います。
それはあなた自身のpackage.json
テンプレートを作成します、 generate と yeoman examplesを見てください。