[開発環境]NPM

5169 ワード

NPM


Node.なぜjsが必要なの?

  • 最新仕様開発可能
  • バージョン自動化
  • 開発環境カスタム
  • プロジェクトの作成

    $ npm init対応するコマンドを使用してプロジェクトを作成できます.

    package.json

    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
    package.json内部でscriptsを使用してプロジェクトコマンド(e.g.構築、導入、テスト、実行)を登録できます.

    外部パッケージのインストール


    1)CDNの使用<script src="https://unpkg.com/react@16/umd/react.development.js"></script>欠点:
  • CDNサーバに障害が発生した場合、外部ライブラリは使用できません.
  • ライブラリを更新するたびに、直接ダウンロードします.
  • 2)npmの使用
    以上の欠点はnpmで解決できる.
    npmでは、外部ライブラリコードをプロジェクトフォルダにダウンロードできます.更新されるライブラリは、npmで유의적 버전とバージョンの範囲を指定することでバージョンを管理できます.$ npm install 패키지명有意義なバージョン
    有意義なバージョンは、プライマリ、セカンダリ、セカンダリの3つの数字の組み合わせでバージョンを管理します.
    各バージョンの変更基準は次のとおりです.
  • 週バージョン:既存のバージョンと互換性がないように変更すると
  • になります.
  • マイナーバージョン(Minor Version):
  • 既存バージョンと互換性があり、機能が追加されました
  • バージョン(パッチ):既存のバージョンと互換性がある場合にエラーを修正すると
  • になります.
    e.g. $ npm install react
    // package.json
    
    {
      "dependencies": {
        "react": "^16.12.0"
      }
    }
    以上のように反応庫を設置すると^(CARAT)が存在し,主(16),次(12),数(0)が存在する.
    バージョン範囲
    ^(クララ)
    ここでは^(캐럿)がよく見られますが、CARATには以下の特徴があります.
  • 1.00版では、マイナー・バージョンとパッチ・バージョンの更新が許可されています.
  • 0.Xバージョンの場合、パッチ更新は
  • に許可されます.
  • 0.X.xバージョンでは
  • の更新は許可されていません
    上記の例では、^16.12.0タグは16.12.0〜17.0.0を意味する.
    e.g.
    ^1.2.3 표기는 1.2.3부터 2.0.0미만
    ^0.2.3 표기는 0.2.3부터 0.3.0미만
    ^0.0 표기는 0.0.0부터 0.1.0미만
    ^0.0.3 표기는 업데이트를 허용하지 않는다.
    ~(ティルト)
    ティルには以下の特徴があります.
  • のマイナーバージョンが指定されている場合、パッチ
  • の更新が許可されます.
    マイナーバージョン
  • がない場合は、マイナー変更
  • を許可します.
    e.g.
    ~1.2.3 표기는 1.2.3부터 1.3.0미만
    ~1.2 표기는 1.2.3부터 1.3.0미만
    ~0 표기는 0.0.0부터 1.0.0미만
    通常、パッケージのバージョンは、ライブラリの正式なバージョンよりも前に随時変更されます.0.1から0.2分まで버전이 변하더라도 하위 호환성을 지키지 않고 배포하는 경우가 빈번~バージョン範囲を0とマークした場合、使用範囲は0.0.0~1.0.0以下であるため、下位互換性を満たすことができない0.2に更新される可能性があります.
    逆に、CARATタグ^0.0を使用すると、バージョンは0.0~0.1.0に制限されます.したがって、より低い互換性を維持することができる.

    Reference

  • https://www.inflearn.com/course/%ED%94%84%EB%A1%A0%ED%8A%B8%EC%97%94%EB%93%9C-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD
  • https://jeonghwan-kim.github.io/series/2019/12/09/frontend-dev-env-npm.html