Node — 第九天 (ES6降級 and 發布屬于自己的[第三方模塊]包)

ES6降級處理

因為 ES 6 有瀏覽器兼容性問題,可以使用一些工具進行降級處理,例如:babel

  • 降級處理 babel 的使用步驟

    1. 安裝 Node.js
    2. 命令行中安裝 babel
    3. 配置文件 .babelrc
    4. 運行命令,完成降級
  • 項目初始化 (項目文件夾不能有中文)

    npm init -y
    
  • 在命令行中,安裝 babel babel官網

    npm install  @babel/core @babel/cli @babel/preset-env
    
  • 配置文件 .babelrc (手工創建這個文件)

    babel 的降級處理配置

    {"presets": ["@babel/preset-env"]
    }
    
  • 在命令行中,運行

    # 把轉換的結果輸出到指定的文件
    npx babel index.js -o test.js
    # 把轉換的結果輸出到指定的目錄
    npx babel 包含有js的原目錄 -d 轉換后的新目錄
    

發布屬于自己的包

規范的包結構

在清楚了包的概念、以及如何下載和使用包之后,接下來,我們深入了解一下包的內部結構。

一個規范的包結構,需要符合以下 3 點要求:

  1. 包必須以單獨的目錄而存在
  2. 包的頂級目錄下要必須包含 package.json 這個包管理配置文件
  3. package.json 中必須包含 nameversionmain 這三個屬性,分別代表包的名字、版本號、包的入口。
    • name 包的名字,我們使用 require() 加載模塊的時候,使用的就是這個名字
    • version 版本,1.2.18 ,對于一個新的包來說,版本是 1.0.0
    • main 入口文件。默認是 index.js 。如果不是,需要使用main指定

注意:以上 3 點要求是一個規范的包結構必須遵守的格式,關于更多的約束,可以參考如下網址:

https://yarnpkg.com/zh-Hans/docs/package-json

開發屬于自己的包

  • 需要實現的功能是(比如把首字母轉換成大寫、把時間處理成年月日的形式)

  • 初始化包的基本結構

    • 新建 itheima-ucfirst 文件夾,作為包的根目錄
    • 在 itheima-ucfirst 文件夾中,新建如下三個文件:
      • package.json (包管理配置文件)
      • index.js (包的入口文件)
      • README.md (包的說明文檔)
  • 初始化 package.json

    關于更多 license 許可協議相關的內容,可參考 https://www.jianshu.com/p/86251523e898

  • index.js 中定義功能方法

    編寫包的說明文檔

    包根目錄中的 README.md 文件,是包的使用說明文檔。通過它,我們可以事先把包的使用說明,以 markdown 的 格式寫出來,方便用戶參考。

    README 文件中具體寫什么內容,沒有強制性的要求;只要能夠清晰地把包的作用、用法、注意事項等描述清楚即可。 我們所創建的這個包的 README.md 文檔中,會包含以下 4 項內容:(可以參考其他包的文檔,比如multer)

    • 安裝方式
    • 導入方式
    • 方法使用說明
    • 開源協議

發布包

  • 注冊npm賬號

    • 訪問 https://www.npmjs.com/ 網站
    • 點擊 sign up 按鈕,進入注冊用戶界面
    • 填寫賬號相關的信息
    • 點擊 Create an Account 按鈕,注冊賬號
  • 登錄 npm 賬號(指的不是頁面中登錄,而是終端中登錄

    npm 賬號注冊完成后,可以在終端中執行 npm login 命令,依次輸入用戶名、密碼、郵箱后,即可登錄成功。

在這里插入圖片描述

  • 把包發布到 npm 上

    • 將終端切換到包的根目錄
    • 切換鏡像源為npm官網(用taobao的鏡像源不行)
    • 運行 npm publish 命令,即可將包發布到 npm 上
    • 注意:包名不能雷同
  • 常見錯誤

    • 沒有切換鏡像源。要發布到npm上,必須切換鏡像源為npm

在這里插入圖片描述

- 24小時內不能重復發布

在這里插入圖片描述

- 新注冊的賬號,必須先郵箱(郵件可能是垃圾郵件)驗證,然后才能發布

在這里插入圖片描述

  • 刪除已發布的包

    • 運行 npm unpublish 包名 --force 命令,即可從 npm 刪除已發布的包。
  • 注意:

    • npm unpublish 命令只能刪除 72 小時以內發布的包
    • npm unpublish 刪除的包,在 24 小時內不允許重復發布
    • 發布包的時候要慎重,盡量不要往 npm 上發布沒有意義的包!

更多關于npm的命令:https://www.npmjs.cn/

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/247978.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/247978.shtml
英文地址,請注明出處:http://en.pswp.cn/news/247978.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vue — 第一天(極速入門)

基本介紹 vue是什么 目標:了解vue的一些基礎概念。 官方網站: https://cn.vuejs.org/ vue是:漸進式javascript框架。 兩組概念 (1)框架 庫。只提供一些API給開發者使用。jquery 是一個js庫框架。擁有自己的規則和…

python類和實例化

簡答介紹類和實例python是面向對象的語言,最主要的就是類和實例,類是抽象的模版創建一個類class Studen(object),class 后接類名,定義的類名大些字母開頭,object為類的繼承,沒有合適的繼承類用object類,這是…

pjsip庫分析

http://blog.chinaunix.net/space.php?uid287570&doblog&cuid728411 如果你對SIP/VoIP技術感興趣,哪希望你不要錯過:),如果你對寫出堪稱優美的Code感興趣,那么你也不可錯過:)這期間我想分析一下一個實際的協議棧的設計到實現的相關技術,算是自己的一個學習經歷記錄.最…

Vue — 第二天(v-model和過濾器)

VUE-02-v-model和過濾器 昨日反饋與回顧 代碼倉庫的問題 不要修改你克隆下來的倉庫中任意代碼,否則,下次pull時,可能會報錯,從而得到不到最新的代碼。 如果已經遇到了這個沖突: 解決沖突(git 中解決沖突)把關鍵代碼…

Count

題目鏈接&#xff1a;點這里 題目意思&#xff1a;令f(x)表示<x的正整數中與x互質的數的平均數*2&#xff0c;求sigma(f(i)^k),L<i<R Solution: 首先&#xff0c;我們定義\(S(x)\sum_{gcd(a,x)1}a\)&#xff0c;因為gcd(a,x)1&#xff0c;所以對于任意a&#xff0c;滿…

牛人iOS開發系列--音頻播放、錄音、視頻播放、拍照、視頻錄制

概覽 隨著移動互聯網的發展&#xff0c;如今的手機早已不是打電話、發短信那么簡單了&#xff0c;播放音樂、視頻、錄音、拍照等都是很常用的功能。在iOS中對于多媒體的支持是非常強大的&#xff0c;無論是音視頻播放、錄制&#xff0c;還是對麥克風、攝像頭的操作都提供了多套…

Vue — 第三天(計算屬性和json-server)

計算屬性 使用場景 如果一個結果需要依賴data中的數據&#xff0c;但是需要經過一些邏輯處理&#xff0c;才能得到你想要的數據。此時就可以使用計算屬性。 例如&#xff1a;要對給定的字符串做翻轉處理之后再來顯示。 <div id"app"><!-- 此處邏輯復雜 …

JQuery的ready函數與JS的onload的區別詳解

JQuery的ready函數與JS的onload的區別&#xff1a;1.執行時間window.onload必須等到頁面內包括圖片的所有元素加載完畢后才能執行。$(document).ready()是DOM結構繪制完畢后就執行&#xff0c;不必等到加載完畢。 2.編寫個數不同window.onload不能同時編寫多個&#xff0c;如果…

Vue — 第四天(components組件)

問題導入 下面的代碼是一個折疊面板的效果。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Docu…

iOS開發常用的RGB色值和宏

iOS中RGB常用的色值,同時可將對顏色的設置定義成宏,方便開發應用,如: // name 顏色相關 // 參數格式為&#xff1a;0xFFFFFF #define kColorWithRGB(rgbValue) \ [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16)) / 255.0 \ …

防火墻綜合實驗

防火墻技術綜合實驗 一、實驗目的&#xff1a;本次實驗是將多種訪問控制列表以及防火墻部分的知識做一個匯總 二、實驗內容 A&#xff1a;Established控制列表 拓撲圖 配置步驟 1:配置各端口ip地址&#xff0c;配置登陸密碼 R4: 登陸賬號&#xff1a;ys 密碼&#xff1a;123 2:…

iOS獲取當前設備型號等信息總結 包含iPhone7和iPhone7P

#include <sys/types.h> #include <sys/sysctl.h>//獲得設備型號(NSString *)getCurrentDeviceModel {int mib[2];size_t len;char *machine;mib[0] CTL_HW;mib[1] HW_MACHINE;sysctl(mib, 2, NULL, &len, NULL, 0);machine malloc(len);sysctl(mib, 2, mac…

Vue — 第五天(路由)

前端路由 問題導入 在前面完成的資產管理案例中&#xff0c; 我們是把列表區域和添加表單區域實現在了一個區域。當頁面功能比較復雜時&#xff0c;我們需要它們拆分開來&#xff1a;一個頁面中只顯示一個區域。 一個比較直觀的解決方案是把它們分別做成兩個獨立的網頁文件&…

獲取網絡時間,在不同時間觸發事件

<!DOCTYPE html><html lang"en"><head>   <meta charset"UTF-8">   <title>時間事件</title></head><body></body><script> var int_timenew Date();//使用Date獲取網絡時間;   functi…

iOS獲取手機的IP地址

1.添加這五個庫&#xff08;在聯網的情況下&#xff09; #import <sys/socket.h> #import <sys/sockio.h> #import <sys/ioctl.h> #import <net/if.h> #import <arpa/inet.h>2.寫一個方法 - (NSString *)getDeviceIPIpAddresses {int sockfd soc…

Vue — 第六天(vue-cli-介紹)

vue-cli-介紹 vue-cli是官方提供的開發vue項目的腳手架工具。 腳手架是為了保證各施工過程順利進行而搭設的工作平臺。 在開發過程中&#xff0c;腳手架工具是有用的&#xff0c;開發完成&#xff08;項目上線&#xff09;&#xff0c;它就沒有用了。 vue-cli可以提供基于vue項…

python安裝pyautogui遇到的gbk異常解決

一開始使用pip install pyautogui,報錯,大概信息如下: Collecting pygetwindow (from pyautogui) Using cached https://files.pythonhosted.org/packages/01/ed/56d4a369c6e18f6b239d9ef37b3222ba308bfebf949571b2611ff7d64f1d/PyGetWindow-0.0.4.tar.gz ERROR: Complete …

NSString的各種用法總結(創建、截取、判斷比較、轉化數據類型、拼接、替換、添加、追加、讀取、寫入、刪去、改變)

1、創建字符串1&#xff09;NSSring *str ”adf”;2&#xff09;NSString *str1 [NSString new];NSString *str2 [[NSString alloc] initWithString:”adf”]; &#xff08;等同于1&#xff09;4&#xff09;NSString *str3 [NSString stringWithFormat:”name is %”,”小…

Vue — 第七天(vue-cli-案例)

資料獲取地址&#xff1a; github: https://gitee.com/wang_yu5201314/VUE_vuecli SSH&#xff1a; gitgitee.com:wang_yu5201314/VUE_vuecli.git hero案例-項目介紹 功能介紹&#xff1a; 三個模塊 英雄列表(只做這個)裝備列表技能列表 英雄列表 列表組件刪除功能添加組件編…

postman測試工具

做文件上傳測試的時候可以選擇輸入方式為文件 做文件下載測試的時候&#xff0c;可以選擇 轉載于:https://www.cnblogs.com/thesun/p/10853226.html