Nodejs npm使用戦略(独自のnpmパッケージを公開する方法)

この記事は、「新人クリエーションセレモニー」イベントに参加し、一緒にゴールドクリエーションの道を歩み始めました。

序文

フロントエンド開発者として、開発ツールモジュールを自分で作成する方法を学ぶ必要があります。また、コンポーネントを自分で作成したり、独自の機能を使用してフレームワークを作成したりすることもできますが、これには、この記事では主に、npmがログインしてパッケージをアップロードする方法、パッケージを更新する方法、パッケージを取り消す方法などを紹介します。

プロジェクトを作成する

npm-testなどの新しいフォルダーを作成します。

プロジェクトフォルダの場所にcdしてnpm init -y、フロントエンドプロジェクトを作成すると、package.jsonファイルが生成されます。

npm init -y
复制代码

コードを書く

package.jsonオブジェクトの主な属性はnpmパッケージエントリモジュールであり、デフォルトはですindex.js。したがって、プロジェクトにindex.jsを作成して、必要な機能モジュールを実装できます。

//index.js
export const add = (a, b) => {
    return a + b
}
export const del = (a, b) => {
    return a - b
}
export {add, del}
复制代码

npmソースとnpmログインの設定

npmパッケージをアップロードするには、デフォルトのnpmソースを設定してログインする必要があります。

Taobaoソースはダウンロード時に高速であるため、切り替えが非常に不便です。nrmを使用せずにnrmをインストールしてnpmソースを管理することをお勧めします。

npm i nrm -g
复制代码

nrm ls一般的なソースを一覧表示でき、nrm use必要な限りnpmソースをすばやく切り替えることができます

在这里插入图片描述

平時、つまり、ダウンロード時に淘宝網のソースを使用できますnrm use taobao

そして、今すぐログインする必要があるので、npmソースに切り替えることができます。つまり、それを使用できnrm use npmます。

在这里插入图片描述

次にnpm loginログインします。ログインする前に、 npm公式Webサイトでアカウントを登録する必要があります。

在这里插入图片描述

アップロード

ルートから実行npm publish

npm publish
复制代码

パッケージ名が使用されたことを示すエラーが報告される場合があるYou do not have permission to publish "xxxx"ため、名前を変更package.jsonしてnameプロパティを変更する必要があります。たとえば、テストで繰り返しにくい名前に変更して、npm-test-moon再度アップロードする必要があります。

エラーなしで成功しました。

テストをダウンロード

自分でアップロードしたパッケージ名をダウンロードしますnpm i npm-test-moon

新しいtest.jsファイルを作成して、テストしてnode test.js実行します。

//test.js
import {add,del} from 'npm-test-moon'
console.log(add(1,2))//3
复制代码

npmパッケージを更新する

更新内容以后再执行npm publish,可能会报错You cannot publish over the previously published versions,每次更新包上传,必须要修改版本。

修改package.jsonversion属性为1.0.1,再次上传即可成功。

三个数字从左到右分别代表主版本号、次版本号、修订号

  1. 主版本号(major):当你不兼容旧版本的新版本。一般我们将原有内容颠覆就修改主版本号。
  2. 次版本号(minor):当你做了兼容前一个版本的功能性新增。不影响原有功能增加新功能修改的都是次版本号。
  3. 修订号(patch):当你做了兼容前一个版本的问题修正。修复一些bug,进行一些优化就修改修订号。

撤销npm包

假如刚发布的1.0.1的包存在问题,我们需要进行撤销, npm deprecate 包名@版本号 提示信息

npm deprecate [email protected] 这个版本存在问题,请下载1.0.0版本
复制代码

撤销之后,下载默认下载最新1.0.1版本会出现提示,会自动下载前一个版本,即使该版本源码还在,但是导出内容仍是上一个版本的。

在这里插入图片描述

注意,只在发布24小时内才可以进行撤销,且撤销过的版本号不再可以使用,比如我们1.0.1版本撤销了,下次发布新版本,必须得修改1.0.2了,不可以再使用1.0.1了。

es6转es5兼容性处理

有些人平时编写模块时比较喜欢使用es6代码,但是如果希望自己的模块既能被es6形式import导入,也希望能同时兼容commonjs模块的require导入,我们在上传自己的npm包时就得考虑好这个问题。

比如我们这篇的包使用es6的导出方式,上传之后,只有使用es6模块开发项目的人才能使用,而使用commonjs规范的则不行,因此我们需要将该内容兼容处理再上传。

如需了解请移步另一篇文章:nodejs ES6模块使用 以及 ES6代码转ES5兼容性处理

おすすめ

転載: juejin.im/post/7080034894000324639