打包發(fā)布到NPM并通過(guò)CDN訪問(wèn)

本文主要講述基于webpack編寫(xiě)js包文件后上傳到npm芥被,并通過(guò)cdn進(jìn)行訪問(wèn)葫笼。

創(chuàng)建項(xiàng)目

在自己新建的文件夾下執(zhí)行如下代碼:

npm init
name: (mtmap)
version: (1.0.0)
description: xxxxx
entry point: (/dist/gaia.demo.map.js)
test command:
git repository:
keywords:
author: allanhao
license: (ISC) MIT
About to write to E:\github\mtmap\package.json:

{
  "name": "mtmap",
  "version": "0.1.0",
  "description": "xxxxx",
  "main": "/dist/gaia.demo.map.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "allanhao",
  "license": "MIT"
}
Is this ok? (yes) 

按照提示填寫(xiě)基本信息

配置項(xiàng) 意義 默認(rèn)值
name 包的名字 默認(rèn)是所在文件夾的名字
version 包的版本 1.0.0
description 項(xiàng)目描述
entry point 入口文件 index.js
test command 測(cè)試命令
git respository 源代碼git倉(cāng)庫(kù)地址
keyword 關(guān)鍵字,會(huì)顯示在npm中础废,方便別人搜索
author 作者
license 執(zhí)照

確認(rèn)后會(huì)發(fā)現(xiàn)文件目錄內(nèi)多出來(lái)一個(gè)package.json文件

開(kāi)始寫(xiě)代碼汛骂,參照webpack教程

發(fā)布到NPM

注冊(cè)npm賬號(hào)

在npm官網(wǎng)注冊(cè)https://www.npmjs.com
注意郵箱要驗(yàn)證评腺,會(huì)發(fā)送驗(yàn)證鏈接到你的注冊(cè)郵箱帘瞭,沒(méi)有驗(yàn)證的話是不能發(fā)布代碼的

添加.npmignore文件,例:

/**/*
!dist/gaia.demo.map.js
!ACKNOWLEDGEMENT

這樣會(huì)將build后的dist文件夾內(nèi)的js包文件發(fā)布到npm蒿讥,方便后續(xù)通過(guò)cdn訪問(wèn)

提交發(fā)布上面創(chuàng)建的包

  • 先登錄你的npm賬號(hào)
$ npm adduser    
Username: your name
Password: your password 
Email: yourmail

按照你注冊(cè)的賬號(hào)配置好蝶念,這時(shí)候看一下package.json中author盡量與npm賬戶一致

在根目錄下配置賬號(hào)信息,只用配置一次即可芋绸,我上傳的時(shí)候發(fā)現(xiàn)有提示必須admin權(quán)限才能上傳問(wèn)題就是沒(méi)在根目錄下配置信息

  • 檢查是否登錄成功:
npm who am i
# 如果不成功則重新登錄一下
npm login
  • 配置成功之后提交代碼
npm publish

注意:如果提示包不能為private媒殉,需要執(zhí)行下面的發(fā)布方式:

npm publish --access public

注意每次提交版本號(hào)都要比上次的高

  • 測(cè)試是否提交成功

去官網(wǎng)你的賬號(hào)下面看一下有沒(méi)有
或者直接npm下載下來(lái)

npm i mtmap

npm的版本控制

在我們的package.json里面有一個(gè)version字段 ,每次提交到npm摔敛,版本號(hào)需要增加廷蓉。 或者自己手動(dòng)修改,或者使用 “npm version <update_type>” 命令

npm有一套自己的版本控制標(biāo)準(zhǔn)——Semantic versioning(語(yǔ)義化版本)

具體體現(xiàn)為:
對(duì)于"version":"x.y.z"
1.修復(fù)bug,小改動(dòng)马昙,增加z
2.增加了新特性桃犬,但仍能向后兼容刹悴,增加y
3.有很大的改動(dòng),無(wú)法向后兼容,增加x

例如:我原本的項(xiàng)目是1.0.0版本的話
若是1中情況攒暇,變?yōu)?.0.1
若是2中情況土匀,變?yōu)?.1.0
若是3中情況,變?yōu)?.0.0

通過(guò)npm version <update_type>自動(dòng)改變版本
update_type為patch, minor, or major其中之一形用,分別表示補(bǔ)丁就轧,小改,大改

一些常見(jiàn)的錯(cuò)誤

1.no_perms Private mode enable, only admin can publish this module

這是因?yàn)殓R像設(shè)置成淘寶鏡像了田度,設(shè)置回來(lái)即可

npm config set registry http://registry.npmjs.org

2.npm publish failed put 500 unexpected status code 401

一般是沒(méi)有登錄钓丰,重新登錄一下 npm login 即可

3.npm ERR! you do not have permission to publish “your module name”. Are you logged in as the correct user?

包名被占用,改個(gè)包名即可每币。最好在官網(wǎng)查一下是否有包名被占用,之后再重命名

4.you must verify your email before publishing a new package

郵箱未驗(yàn)證琢歇,去官網(wǎng)驗(yàn)證一下郵箱

通過(guò)CDN訪問(wèn)

這里使用的是jsdelivr

地址格式為:

https://cdn.jsdelivr.net/npm/(your packagename)@(version)/(file)

如:

https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末兰怠,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子李茫,更是在濱河造成了極大的恐慌揭保,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件魄宏,死亡現(xiàn)場(chǎng)離奇詭異秸侣,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)宠互,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)味榛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人予跌,你說(shuō)我怎么就攤上這事搏色。” “怎么了券册?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵频轿,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我烁焙,道長(zhǎng)航邢,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任骄蝇,我火速辦了婚禮膳殷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘乞榨。我一直安慰自己秽之,他們只是感情好当娱,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著考榨,像睡著了一般跨细。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上河质,一...
    開(kāi)封第一講書(shū)人閱讀 51,365評(píng)論 1 302
  • 那天冀惭,我揣著相機(jī)與錄音,去河邊找鬼掀鹅。 笑死散休,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的乐尊。 我是一名探鬼主播戚丸,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼扔嵌!你這毒婦竟也來(lái)了限府?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤痢缎,失蹤者是張志新(化名)和其女友劉穎胁勺,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體独旷,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡署穗,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嵌洼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片案疲。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖麻养,靈堂內(nèi)的尸體忽然破棺而出络拌,到底是詐尸還是另有隱情,我是刑警寧澤回溺,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布春贸,位于F島的核電站,受9級(jí)特大地震影響遗遵,放射性物質(zhì)發(fā)生泄漏萍恕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一车要、第九天 我趴在偏房一處隱蔽的房頂上張望允粤。 院中可真熱鬧,春花似錦、人聲如沸类垫。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)悉患。三九已至残家,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間售躁,已是汗流浹背坞淮。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留陪捷,地道東北人回窘。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像市袖,于是被迫代替她去往敵國(guó)和親啡直。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容