React的一大優勢是能夠編寫可複用的組件,咱們可使用它來構建複雜的UI界面。NPM容許咱們編寫可複用模塊並將其發佈到網上,這樣來自世界各地的數百萬開發能夠下載而且使用。node
爲此,咱們爲什麼不使用這兩個工具來編寫和發佈React組件,以便其餘的開發人員能夠簡單安裝而且使用咱們的組件。接下來我將介紹如何一步步實現一個可複用的組件到發佈NPM的基本操做,爲的就是相互的學習,共同進步。react
mkdir npm-components-zhgbin0501
cd npm-components-zhgibn0501複製代碼
npm init複製代碼
Note:根據提示輸入一些信息,確保npm包的名稱的惟一性。
yarn add @babel/cli @babel/core --dev複製代碼
Note:安裝核心包以後,咱們須要在安裝一下Presets,它是將其餘代碼轉化成es5的關鍵。
yarn add @babel/preset-env @babel/preset-react --dev複製代碼
Note:@babel/preset-env可將咱們編寫的代碼轉化成ES5,@babel/preset-react可將咱們咱們編寫的React代碼轉換成JavaScript。
touch .babelrc複製代碼
{
"presets": ["@babel/preset-env", "@babel/preset-react"]
}複製代碼
mkdir src
cd src
touch index.js複製代碼
import React from 'react';
export default class Demo extends React.Component {
render() {
return (
<div>this is my first NPM library</div>
)
}
}複製代碼
cd ..
./node_modules/.bin/babel src --out-file index.js複製代碼
在根目錄下將會生成一個index.js文件
這是咱們的組件轉換成的es5文件
yarn add react react-dom --dev複製代碼
開發依賴中安裝react和react-dom以便咱們接下來開發所用
關於NPM模塊組件這裏咱們就告一段落,接下來咱們準備測試咱們的組件。
pwd複製代碼
Note: 提出的路徑就是咱們後面須要安裝的npm
npx create-react-app npm-module-test
cd npm-module-test
yarn start複製代碼
yarn add /Users/zhangbin/demo/npm-components複製代碼
npm adduser複製代碼
...
npm ERR! publish Failed PUT 403
npm ERR! code E403
npm ERR! no_perms Private mode enable, only admin can publish this module:...
...複製代碼
1.檢查倉庫是否被設置成了淘寶鏡像庫git
npm config get registry複製代碼
2.若是是,則設置會原倉庫github
npm config set registry=http://registry.npmjs.org複製代碼
3.登陸帳號(如未登陸)npm
npm login複製代碼
4.再次發佈json
npm publish複製代碼
5.設置會源庫瀏覽器
npm config set registry=https://registry.npm.taobao.org/複製代碼
寫到這裏差很少就介紹完了一個react組件從轉碼、打包到發佈的一個簡短流程。筆者也是在項目中現學現賣的,不免有不恰當之處,歡迎各位指點。bash
源碼預覽可參考本連接:github.com/zhgbin0501/…babel
原文請看語雀文檔:www.yuque.com/zhgbin0501/…app