201127 TIL NodeJs npm


NPM


npm init


npm init < initializer > can be used to set up a new or existing npm package.
npm initを実行する場合は、name、description、authorを作成する必要があります.
=>実行後パッケージ.jsonを作成!
{
  "name": "firstnodeserver",
  "version": "1.0.0",
  "description": "firstNode",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
  },
  "author": "Sunny",
  "license": "ISC",
}
このようにして作成され、"start":node app.jsがスクリプトに追加されます.npm startが実行される場合、node app.jsが実行され得る.
startは非常に特別な例で、start-serverなどのコマンドを追加する場合は、npm run start-serverなどのコマンドを作成する必要があります.
npm Repositoryに存在するモジュールはnpmによってインストールおよび管理される.

npm & packages


npx create-act-app,vue create-appなどもpackageを確認できます.jsonはdependenciesまたはdevDependenciesのkeyをチェックすることができます.これらの友人には、3 rd Party Library、すなわちnpm runを介してインストールされた外部パッケージモジュールに関する情報が含まれている.
npm Repositoryが受信したモジュールはnpmによってインストールおよび管理される.

^versionと~versionの違い


npm installをインストールすると、バージョンの前に^や~がよく見られます.両者の違いは何ですか.

^ : caret


^version “Compatible with version”, will update you to all future minor/patch versions, without incrementing the major version. ^2.3.4 will use releases from 2.3.4 to <3.0.0.

~ : tilde


~version “Approximately equivalent to version”, will update you to all future patch versions, without incrementing the minor version. ~1.2.3 will use releases from 1.2.3 to <1.3.0.

package.json vs package-lock.json


npm installで3 rdparty libraryをインストールする場合、package.jsonだけじゃなくpackage-lockjsonが一緒にインストールされているのが見えます.
package.jsonは、インストールされた3 rd partyライブラリの最新バージョン、package-lockをインストールできます.jsonでは、3 rdpartyライブラリのプロジェクトインストール時のバージョンを覚えて、呼び出されてもエラーが発生しないようにライブラリを後で更新できます.
依存ツリーに関する情報があり、ファイル(package-lock.json)が生成時に依存ツリーを再生成することを確認します.

Global Features vs Core Modules vs Third-party modules


Global Features


他のインストールやインポートなしで使用できる

Core Modules


fs、httpなど、インポート後に使用できる機能

Third-party modules


npm installでインストールしたり、importで使用したりできます.
--save、--save-dev、-gなど、多くのオプションがあります.
nodemon : nodeapp.jsが実行時にコードが変化すると、サードパーティモジュールは自動的に再実行されます.

Types of Errors

  • Syntax Errors
  • Runtime Errors -> Not typos. ランタイムエラー
  • Logical Errors -> Error message x. can be hard to find this.