Nodejs の npm&package.json の概要

零下一度
零下一度オリジナル
2017-06-17 10:38:481338ブラウズ

この記事ではNodejsのnpm&package.jsonの詳しい解説を中心に紹介していますが、編集者がとても良いと思ったので、参考としてシェアさせていただきます。編集者をフォローして見てみましょう

長い間、私はフロントエンド開発者として社内で最初にページを書き、バックエンドと協力してフロントエンドページにデータを埋め込んでいきました。 . しかし、時々何もすることがなく、いくつかのフレームワークなどを見て、そのフレームワークを使用して単一ページのアプリケーション、アプリなどを作成します。このとき、ページ上のデータは常に偽物になります。データを要求する部分は実行できません (バックエンドがないため)。ということで、これから学ぶwebpackやフロントエンドエンジニアリングなどにも役立つnodeを学ぶ時期が来たと感じています。
フロントエンドとしてはgulpやwebpackなどのツールがよく使われるため、よく見かけるのはnpmとpackage.jsonなので、まずはそれらをまとめてみましょう。

npm

初期化


$ npm init
or
$ npm init --y

フロントエンド開発を行うとき、gulp、webpackなどのビルドツールをよく使用します。他の人が参加できるようにするには、プロジェクトにどのような依存関係があるかを他の人に伝え、同じ依存関係をインストールするように依頼します。npm init によって生成された package.json は、プロジェクト内の依存関係を記録するためにも同様に使用されます。パッケージも package.json に記録する必要があります。

ターミナルに npm init と入力すると、package.json に関するさまざまな情報を確認するように求められます。すべてにデフォルト値を使用する場合は、ターミナルに直接 npm init --y と入力して、package.json をすばやく生成できます。

依存関係パッケージをインストールする


$ npm install <package name> <package name> ...

$ npm install <package name> -g

$ npm install <package name> --save

$ npm install <package name> --save-dev

$ npm install <pacakage name> --O //--save-optional -B: --save-bundle -E: --save-exact

npm install 871efc320ddc75aae4a68801bfdf2f4a -g 表示全局安装,需要注意的是全局模式并不是将一个模块安装包安装为一个全局包的意思,它并不意味着可以从任何地方通过require()来引用,-g的含义是将一个包安装为全局可用的可执行命令。这意味着,所有通过-g安装的包都可以在终端以命令方式运行,例如gulp,webpack等。

--save--save-dev的区别在于前者是生产环境中项目运行需要的依赖,安装后被记录在package.json中的dependencies关键字下;而后者是开发时候需要的依赖,安装后被记录在devDependencies关键字下。

同样--O/B/E分别会被记录到对应的关键字下。

更新依赖包


$ npm update

$ npm update -g

$ npm outdated

$ npm outdated -g

在项目目录下运行npm update可以升级项目中所用依赖到最新版本,而npm update -g则可以升级全局安装的依赖包到最新版。

npm outdated用于检查模块是否过时并列出。

卸载依赖


$ npm uninstall <package name> <package name> ...

$ npm uninstall <package name> -g

$ npm uninstall <package name> --save

$ npm uninstall <package name> --save-dev

使用npm uninstall可以卸载依赖,但是卸载后,在package.json中的纪录并不会被删除,要想在卸载依赖的同时删除在package.json中的纪录,需要在卸载的时候使用安装时的所有的选项,例如,如果安装时候使用了npm install acab04e509e5b64e7e2bc0d60ab53414 --save则卸载的时候,同样使用npm uninstall a57d0322de109e503dba2a67e33c825b --save,而如果使用了--save-dev,卸载时候也需要加相同的选项。

使用自定义npm命令

在package.json中,有一个scripts关键字,只需要在该关键字内写入自定义命令以及对应执行的实际命令即可。


"scripts":{
  "test": "nonde ./test.js",
  "dev": "gulp --gulpfile gulpfile-dev.js",
  "build": "gulp --gulpfile gulpfile-build.js"
}

上面的配置中,只要我们在终端运行npm dev就是运行了gulp --gulpfile gulpfile-dev.js,这样就省去了我们在终端输入很长的一段命令,非常方便。

其他

npm view a57d0322de109e503dba2a67e33c825b可以查看包的package.json文件,如果只是看包的某个特性,在后面加上相应的key即可,例如npm v zepto version就是查看当前安装的zepto的版本,v是view的简写。

npm ls可以分析出当前当前项目下能够通过模块路径找到的所有包,并生成依赖树。

npm doc acab04e509e5b64e7e2bc0d60ab53414可以打开该依赖包的官网,其实就是打开了package.json中的homepage。

package.json文件

在运行npm init后会生成package.json文件,该文件用于记录项目中所用到的依赖以及项目的配置信息(比如名称、版本、许可证等)。npm install --save--save-dev の違いは、前者は実稼働環境でプロジェクトを実行するために必要な依存関係であることです。インストール後の package.json 内の依存関係。後者は開発中に必要な依存関係であり、インストール後に devDependency キーワードの下に記録されます。

同様に、--O/B/Eもそれぞれ対応するキーワードの下に記録されます。 🎜🎜🎜依存関係パッケージを更新します🎜🎜🎜🎜🎜
{
  "name": "project",
  "version": "1.0.0",
  "author": "张三",
  "description": "第一个node.js程序",
  "keywords":["node.js","javascript"],
  "repository": {
    "type": "git",
    "url": "https://path/to/url"
  },
  "license":"MIT",
  "engines": {"node": "0.10.x"},
  "bugs":{"url":"http://path/to/bug","email":"bug@example.com"},
  "contributors":[{"name":"李四","email":"lisi@example.com"}],
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {
    "express": "latest",
    "mongoose": "~3.8.3"
  },
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-concat": "~0.3.0"
  }
}
🎜 npm update -g と同時に、プロジェクト ディレクトリで <code>npm update を実行して、プロジェクトで使用されている依存関係を最新バージョンにアップグレードします。 code> will グローバルにインストールされた依存関係パッケージを最新バージョンにアップグレードできます。 🎜🎜npm outdated は、モジュールが古いかどうかを確認し、それらを一覧表示するために使用されます。 🎜🎜🎜依存関係をアンインストールします🎜🎜🎜🎜🎜
"scripts":{

  “install”:"install.js",

  "test":"test.js"

}
🎜 npm uninstall を使用して依存関係をアンインストールしますが、アンインストール後、package.json 内のレコードは削除されません。依存関係を同時にアンインストールするには、削除します。 package.json のレコードを使用するには、アンインストール時にインストール時にすべてのオプションを使用する必要があります。たとえば、インストール中に npm install <package name> --save を使用する場合は、アンインストール時にも使用します。 npm uninstall acab04e509e5b64e7e2bc0d60ab53414 --save を使用し、--save-dev を使用する場合は、アンインストール時に同じオプションを追加する必要があります。 🎜🎜🎜カスタム npm コマンドを使用する🎜🎜🎜 package.json には、カスタム コマンドと実行する実際のコマンドを記述するだけです。 🎜🎜🎜🎜rrreee🎜上記の設定では、ターミナルで npm dev を実行している限り、gulp --gulpfile gulpfile-dev.js を実行します。これにより、ターミナルで長いコマンドを入力する必要がなくなります。とても便利。 🎜🎜🎜その他🎜🎜🎜npm view 7ba9bf58d28c13599f5ad1999ae5e55fパッケージの特定の機能のみを確認したい場合は、対応するパッケージを追加するだけで、パッケージの package.json ファイルを表示できます。末尾のキー (例: npm v zepto version) は、現在インストールされている zepto のバージョンを確認します。 v は view の省略形です。 🎜🎜npm ls は、現在のプロジェクトのモジュール パスを通じて見つかるすべてのパッケージを分析し、依存関係ツリーを生成できます。 🎜🎜npm doc acab04e509e5b64e7e2bc0d60ab53414 は、依存パッケージの公式 Web サイトを開くことができます。実際には、package.json でホームページが開きます。 🎜🎜🎜🎜package.json ファイル🎜🎜🎜🎜🎜 npm init を実行すると、このファイルはプロジェクトで使用される依存関係とプロジェクト構成を記録するために使用されます。情報 (名前、バージョン、ライセンスなど)。 npm install コマンドは、この🎜構成ファイル🎜に基づいて、プロジェクトの操作と開発に必要な依存関係を自動的にダウンロードします。 🎜

一个比较完整的package.json文件如下:


{
  "name": "project",
  "version": "1.0.0",
  "author": "张三",
  "description": "第一个node.js程序",
  "keywords":["node.js","javascript"],
  "repository": {
    "type": "git",
    "url": "https://path/to/url"
  },
  "license":"MIT",
  "engines": {"node": "0.10.x"},
  "bugs":{"url":"http://path/to/bug","email":"bug@example.com"},
  "contributors":[{"name":"李四","email":"lisi@example.com"}],
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {
    "express": "latest",
    "mongoose": "~3.8.3"
  },
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-concat": "~0.3.0"
  }
}

在package.json中一些关键字的含义:

1.name:包名

2.version:版本号

3.description:包的描述

4.homepage:包的官网url

5.autor:包的作者名字

6.contributors:包的其他贡献者

7.dependencies:依赖包的列表,使用npm install可以安装依赖包到node_medule目录下

8.repository:包代码存放的地方,可以是git或者svn

9.keywords:关键字

10.scripts:脚本说明对象。它主要被包管理器用来安装、编译、测试和卸载包,示例如下:


"scripts":{

  “install”:"install.js",

  "test":"test.js"

}

11.main:模块引入方法require()在引入包时,会优先检查这个字段,并将其作为包中其余模块的入口,如果该字段不存在,则node会检查目录下的index.js,index.node,index.json作为默认入口。

12.devDependencies:一些模块只在开发时需要依赖,配置这个属性,可以提示包的后续开发者安装依赖包

以上がNodejs の npm&package.json の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。