摘要:第一步初始化一個(gè)包然后按提示輸入等信息就可以了。第三步發(fā)布注冊(cè)帳號(hào),已注冊(cè)的請(qǐng)忽略。,裝逼完畢,這樣就完成了一個(gè)簡(jiǎn)單的包的開(kāi)發(fā)和發(fā)布。執(zhí)行添加文件,排除需要排除的文件,例如和等。
其實(shí)主要想寫(xiě)一個(gè)圖床網(wǎng)站的上傳方法,順便記錄一次 npm 包的開(kāi)發(fā)。
第一步、 初始化一個(gè) npm 包mkdir upload-img && cd upload-img npm init
然后按提示輸入 package name 、version 、 description 等信息就可以了。
初始化完會(huì)在當(dāng)前目錄生成一個(gè) package.json 文件,熟悉 現(xiàn)代PHP 的應(yīng)該都知道,這個(gè)文件跟 composer.json 的作用是一樣的,都用于描述這個(gè)項(xiàng)目的各項(xiàng)信息,包括依賴和腳本等。
新建 index.js 文件,開(kāi)始編碼。
默認(rèn)的入口文件是 index.js ,當(dāng)然你可以在 package.json 隨意更改入口文件。
/*! Copyright (c) 2017 96qbhy. Licensed under the MIT License (MIT) */ /* global define */ (function () { "use strict"; var axios = window.axios || require("axios"); function uploadImg(file) { var data = new FormData(); data.append("smfile", file); data.append("ssl", true); return axios.post("https://sm.ms/api/upload", data).then(data => data.data); } if (typeof module !== "undefined" && module.exports) { module.exports = uploadImg; } else if (typeof define === "function" && typeof define.amd === "object" && define.amd) { // register as "uploadImg", consistent with npm package name define("uploadImg", [], function () { return uploadImg; }); } else { window.uploadImg = uploadImg; } }());
然后基本套路走一發(fā), 代碼就那么多。
第三步、發(fā)布實(shí)際代碼已更新,最新的代碼請(qǐng)移步該項(xiàng)目的 github倉(cāng)庫(kù)。
作為一個(gè)開(kāi)源項(xiàng)目,一個(gè)好的 readme.md 必不可少,此處我省略了 readme.md 的書(shū)寫(xiě),因?yàn)樘嗔恕?/p>
注冊(cè) npmjs 帳號(hào),已注冊(cè)的請(qǐng)忽略。
執(zhí)行 npm adduser ,按提示輸入 username 和 password 以及 email。
執(zhí)行 npm publish。
OK,裝逼完畢,這樣就完成了一個(gè)簡(jiǎn)單的 npm 包的開(kāi)發(fā)和發(fā)布。
第四步、添加到 github 倉(cāng)庫(kù)到 github 創(chuàng)建倉(cāng)庫(kù)。
執(zhí)行 git init,添加 .gititnore 文件,排除需要排除的文件,例如 node_modules 和 .idea 等。
添加遠(yuǎn)端倉(cāng)庫(kù) , git remote add origin {倉(cāng)庫(kù)地址}
add + commit + push
該項(xiàng)目我托管在 github , 地址是 https://github.com/96qbhy/smms
sm.ms 是一款免費(fèi)的圖床網(wǎng)站,smms 是 sm.ms 的 js 上傳插件 。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/89260.html
摘要:在終端輸入會(huì)詢問(wèn)的各種信息,從而確認(rèn)。這意味著,所有通過(guò)安裝的包都可以在終端以命令方式運(yùn)行,例如,等。用于檢查模塊是否過(guò)時(shí)并列出。文件在運(yùn)行后會(huì)生成文件,該文件用于記錄項(xiàng)目中所用到的依賴以及項(xiàng)目的配置信息比如名稱版本許可證等。 一直以來(lái),作為前端開(kāi)發(fā),在公司都是先寫(xiě)好頁(yè)面,然后再跟后端合作,將數(shù)據(jù)填入前端頁(yè)面中,但是偶爾自己閑來(lái)無(wú)事,也會(huì)看一些框架什么的,然后利用框架做個(gè)單頁(yè)面應(yīng)用啊,...
摘要:另一方面,這樣做也無(wú)法支持不同項(xiàng)目使用不同版本的。我們可以換一個(gè)源,即把服務(wù)器換到國(guó)內(nèi),例如淘寶的源運(yùn)行下面的命令即可切換淘寶源的配置被存儲(chǔ)在,你可以隨時(shí)改。安裝方法使用方法切換源等見(jiàn)鏈接 Nodejs生態(tài)圈很強(qiáng)大,第一個(gè)原因就是NPM,因?yàn)槿蛴袩o(wú)數(shù)的程序員在NPM中貢獻(xiàn)了自己的力量。 為了避免造輪子,我們有時(shí)候會(huì)用到其他人的勞動(dòng)成果,比如一些優(yōu)秀的框架,比如Express,我們直接...
摘要:所以此版本號(hào)在這里的作用并不是用來(lái)區(qū)分版本的,小版本號(hào)才是真正用來(lái)做版本區(qū)分的,那么在引用這個(gè)就要這么來(lái)控制版本號(hào),舉個(gè)栗子鎖定大版本號(hào)和小版本號(hào),不管我們開(kāi)發(fā)過(guò)程中提交了多少次,我們引用都是最新的。 最近在把公司內(nèi)部用的一個(gè)庫(kù)發(fā)布到內(nèi)網(wǎng)的npm私服上,僅僅是發(fā)布的話是比較簡(jiǎn)單的,但這個(gè)庫(kù)是由多個(gè)人一起維護(hù)的,而且npm私服只有一套,所以生產(chǎn)環(huán)境和開(kāi)發(fā)環(huán)境,用的是同一個(gè),那么,我們的需...
摘要:包說(shuō)明包實(shí)際是一個(gè)存檔文件,即一個(gè)目錄直接打包為或格式的文件,安裝后解壓還原為目錄。完全符合規(guī)范的包目錄應(yīng)該包含如下這些文件包描述文件。用于存放單元測(cè)試用例的代碼。 keepsmiling說(shuō)明 一些常用的函數(shù)集合,主要用到的技術(shù)如下: ES6的包處理方式; webpack打包方式; BDD測(cè)試用例,只寫(xiě)了部分; 使用jsdoc生成注釋文檔; 你用eslint優(yōu)化代碼格式; 主...
閱讀 2802·2021-11-22 13:54
閱讀 1152·2021-10-14 09:48
閱讀 2359·2021-09-08 09:35
閱讀 1612·2019-08-30 15:53
閱讀 1218·2019-08-30 13:14
閱讀 679·2019-08-30 13:09
閱讀 2592·2019-08-30 10:57
閱讀 3393·2019-08-29 13:18