ホームページ  >  記事  >  ウェブフロントエンド  >  package.json を使用して依存パッケージのバージョン管理を行う方法について話しましょう

package.json を使用して依存パッケージのバージョン管理を行う方法について話しましょう

青灯夜游
青灯夜游転載
2022-08-09 15:08:492768ブラウズ

この記事では、package.json を使用して、実際のフロントエンド プロジェクトで依存パッケージのバージョン管理を実行する方法について説明します。 ルールが異なると依存関係の管理にどのような影響がありますか?

package.json を使用して依存パッケージのバージョン管理を行う方法について話しましょう

#npm バージョン番号定義

バージョン形式:

#X.Y.Z[-string]意味は次のとおりです:

#XX: メジャー バージョン番号
  • Y: マイナー バージョン番号
  • Z: 修正バージョン番号
  • string: 以前のバージョン番号またはバージョンのコンパイル情報
  • 例:

6.3.2-alpha

は、:

    メジャー バージョン番号 6 を意味します。下位互換性のない更新反復が 6 回あります。
  • マイナー バージョン番号 3 には、3 つの小さな関数の反復があります。
  • 6.*.*

    6.3.2 の依存関係ステートメントは、この新しいパッケージをインストールできます。

  • 修正バージョン番号 2 には、2 つのバグ修正またはその他の主要ではない機能変更があります。
  • 6.*.*

    6.3.2 の依存関係ステートメントは、この新しいパッケージをインストールできます。

  • アドバンス バージョン番号
  • alpha

    、処理トライアル段階を示します。

  • 詳細資料:
セマンティック バージョン 2.0.0

package.json で依存関係のバージョンを識別する方法

は次のように解釈されます:

"vue": "~2.5.22",
"vue-class-component": "^6.0.0",
"vue-router": "3.0.1",
"express": "latest",
"mongoose": "*",

  • Symbol

    ^: メジャー バージョンをロックし、マイナー バージョン番号、改訂されたバージョン番号と優先順位を更新します。バージョン番号例:

    "vue-class-component": "^6.0.0"

    、依存関係をインストールする際は、6に沿ってインストールできます。 *.* メジャー バージョン番号が 6 であれば、任意のバージョン。

  • #シンボル
  • ~

    : メジャー バージョン番号とマイナー バージョン番号をロックし、改訂バージョン番号と詳細バージョン番号を更新します たとえば、"vue": "~2.5.22"

    のように、依存関係をインストールする場合は、

    2.5.* に準拠する任意のバージョンをインストールできます。

  • 空の記号

    : すべてのバージョン番号をロック"vue-router": "3.0 .1"

    、バージョン

    3.0.1 の依存パッケージのみをインストールできます。

  • #シンボル*
  • : 特定のバージョン番号範囲を定義します

    vue-router": " 3.0 .*"

    3.0.1

    3.0.2.## など、3.0 で修正された任意のバージョンをインストールできます。

    #latest
  • : 最新の安定バージョンをインストールします
## たとえば、

"express": "latest"package.json を使用して依存パッケージのバージョン管理を行う方法について話しましょう では、

4.18.1
    (最新バージョン 2022.06.13) をインストールできます。
  • *

    : 最新リリース バージョンをインストールします。必ずしも安定バージョンである必要はありません
  • ##例
"mongoose": "*"

package.json を使用して依存パッケージのバージョン管理を行う方法について話しましょう6.0.0-rc2

    3.9.7
  • などをインストールできます。

    Git URL: Git で公開されているパッケージを使用します引用形式:

    ://[[:<] ;パスワード>]@][:][:][/][# | #semver:]
  • ##

    "test": "git+ssh://git@github.com:npm/cli.git#v1.0.27"
    詳細情報:npm docs - 依存関係

    ##npm パッケージのバージョン番号をあまり信用しないでください!

    #タイトルの通り、これは血のにじむような教訓です。経験
作者が

system.js を使用する場合、使用されるバージョン制限は次のとおりです: system.js: "^6.3.2"

.

依存関係をインストールするときに、バージョン > 6.3.2

が誤ってインストールされ、プロジェクト操作でエラーが発生しました。

理由は、

system.js の作成者です。バージョン番号が semver 仕様に従って命名されておらず、その結果、作成者のプロジェクトが 下位互換性のない

を導入することになりました。更新により、プロジェクトが正しく実行されなくなりました。運用環境は、

dependency の下に均一にインストールされます。

例:

"dependencies": {
	"chalk": "^2.4.2",
	"commander": "^3.0.0",
	"fs-extra": "^8.1.0",
	"inquirer": "^6.5.0",
	"mem-fs": "^1.1.3",
	"mem-fs-editor": "^6.0.0",
	"shelljs": "^0.8.3"
}
上記のコードは、作者が作成した cli ツールキットの package.json の一部です。 shelljs

はファイルの操作に使用されます。devDependency で宣言されている場合、ユーザーが現在のツール パッケージをインストールした後にエラーが報告されます。

devDependency フィールドで宣言された依存関係は、npm がツール パッケージ

をインストールするときにインストールされないためです。インストールするには、

dependency フィールドで宣言する必要があります。

devDependencies

生产环境不需要使用的依赖,都需要安装在devDependencies下。
因为生产环境下,是不会安装devDependencies字段下的依赖的。

举个例子:

"devDependencies": {
	"@commitlint/cli": "^8.1.0",
	"@commitlint/config-conventional": "^8.1.0",
	"commitizen": "^4.0.3",
	"commitlint-config-cz": "^0.12.1",
	"cz-customizable": "^6.2.0",
	"standard-version": "^7.0.0"
}

上述代码,是笔者做的cli工具包的package.json中的片段。
commitizen是笔者用于规范Git提交规范的依赖包,只在开发环境中使用,所以在devDependencies中声明。

peerDependencies

当开发一些插件和工具包时,对使用方的运行环境的依赖包版本有要求,可以使用peerDependencies字段进行声明。

举个例子:

{
  "name": "tea-latte",
  "version": "1.3.5",
  "peerDependencies": {
    "tea": "2.x"
  }
}

当前工具tea-latte,依赖tea包。而且,要求tea包是主版本2。

当不满足要求时,控制台会进行报错处理。

注意
npm v7版本, peerDependencies会默认安装。
npm  v3 到 npm v6版本, peerDependencies不会自动安装。

更多node相关知识,请访问:nodejs 教程

以上がpackage.json を使用して依存パッケージのバージョン管理を行う方法について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。