摘要:表示給增加版本號的第一個數(shù)字,這樣子也會是第二個數(shù)字,的含義最后一個數(shù)字,的意思這個是跟版本號管理對應(yīng)的,一般數(shù)來對應(yīng)是往后兼容性的改變,例如修改默認(rèn)設(shè)置或者刪除功能,一般就是添加一個小功能或者優(yōu)化。
原文是寫在簡書上面的, 我現(xiàn)在搬過來了,這邊更新會稍慢點。
http://www.jianshu.com/p/98f99c20493c
上次為大家介紹了package.json的內(nèi)容,文件在nodejs是非常有用的,發(fā)布npm是必須使用的,那么這次給大家說說如何給github的親兒子編輯器Atom發(fā)布一個package,以便于共享你的好工具,造福大家。
簡單介紹下Atom,是github用nodejs編寫的一個編輯器,其實應(yīng)該主要使用了node-webkit的技術(shù),如果感興趣,可以下次給大家詳細(xì)分析。
此文章來源于官方文檔的翻譯和自己開發(fā)插件的一些心得 ---- https://atom.io/docs/v1.2.4/hacking-atom-package-word-count
Package Generator創(chuàng)建一個package最簡單的方式就是使用atom里面的生成器,使用命令面板--command(window)+shift+P,輸入generator,找到Package Generator:Generate Atom Package 這行命令,選擇即可,這個時候輸入你的package名字,可以起一個高大上有逼格的名字。
看見atom幫你創(chuàng)建了一大堆的文件夾和文件,一般來說,基礎(chǔ)包如下
my-package/ ? keymaps/ ? lib/ ? menus/ ? spec/ ? styles/ ? package.json README.md CHANGELOG.md LICENSE.md .gitignorepackage.json
同樣,首先看 package.json ?因為他涉及到你的發(fā)布和各種配置。跟npm的很像,但是有自己的東東
?main?: 這個是你執(zhí)行命令后進(jìn)入的主文件,也就是入口文件,默認(rèn)是尋找index的,同時atom支持 coffee 和 js
styles :一個字符串?dāng)?shù)組聲明來讓atom加載樣式文件順序,如果沒有,就順序的讀取styles文件夾里面的文件。
keymaps : 一個字符串?dāng)?shù)組聲明package需要加載的key map文件順序,如果沒有,按順序讀取keymaps文件夾的文件。
activationCommands :一個對象來聲明觸發(fā)你的package的行為,key是css選擇器形式,value是一個字符串?dāng)?shù)組聲明命令。知道規(guī)定的css 選擇器中一個觸發(fā)了,才會載入你的package。
來看看下面的package.json長相:
{ "name": "my-package", "main": "./lib/my-package", "version": "0.0.0", "description": "A short description of your package", "keywords": [ ], "activationCommands": { "atom-workspace": "my-package:toggle" }, "repository": "https://github.com/atom/my-package", "license": "MIT", "engines": { "atom": ">=1.0.0 <2.0.0" }, "dependencies": { } }
你最先要確認(rèn)的事情是就填寫這些信息,包括:name,description, repository, license。 剩下的可以邊做邊寫。
Source Code我們來看看我們主文件,也就是剛剛創(chuàng)建的my-package.coffee,如果你在package.json中main的屬性沒有填寫,就是用index文件了,這跟瀏覽器解析url很相似。
這跟最高級別的模塊是一個多帶帶對象,管理著你的package在atom的生命周期,無論你有其他多少的視圖和模塊,都被它管理。
看看這個模塊有哪些重要的方法:
activate(state): 這個必需的方法在你的package執(zhí)行的時候被調(diào)用,如果你的模塊使用了serialize()方法,那么這個方法會傳遞狀態(tài)數(shù)據(jù),在你最后一次窗口被序列化的時候。使用這個初始化工作流程在package開始時
serialize() :這個可選的方法在窗口被掛起的時候調(diào)用,允許你返回一個json表示你的組件狀態(tài)。當(dāng)窗口再次喚起的時候,這個數(shù)據(jù)會傳遞給activate方法,這樣你就可以恢復(fù)你的視圖。
deactivate() :這個可選的方法也是被掛起的時候調(diào)用,如果你的package有監(jiān)聽任何文件或者保持外部的資源,釋放他們在這個時候。如果你只是訂閱窗口內(nèi)的,就不必關(guān)心了。
Style Sheets這個很簡單,就是你的package執(zhí)行的時候,用到的樣式表而已,可以是css或者less。less更好,比較推薦。
其實你不需要太多的css,因為atom本身就提供了一個標(biāo)準(zhǔn)包給使用,你可以使用CMD+shift+P 然后 搜索 styleguide 或者 cmd+crtl+shift+G。
如果你有什么特別要求,可以使用這個style文件夾,記得添加package.json的路徑。
Keymaps推薦使用常用的操作鍵來綁定擴(kuò)展,特別是你也新加了一個命令的時候,在我們package里面,我們的keymaps/my-package.cson文件:
"atom-workspace": "ctrl-alt-o": "my-package:toggle"
這個意思就是你同時按下 crtl-alt-o的時候,我們的package就會執(zhí)行toggle命令,你可以更改這些綁定在這個文件。
所有的快捷鍵都在keymaps的文件目錄中,默認(rèn)是所有的文件都被載入的,package.json文件中有個可選的keymaps選項可以指定哪些文件被載入
Menus這個文件主要是定義菜單欄的,包括頂部的package菜單里面的選項,和右鍵菜單選項。和keymaps一樣可以在package.json里面配置指定文件。
然后就是開發(fā)我們的插件,這個比較復(fù)雜,主要是涉及到Atom內(nèi)部的各種API和機(jī)制,這次先不講,先說其他的。
Basic Debugging最簡單的就是使用 console.log 來調(diào)試,跟我們在瀏覽器一樣,因為node-webkit其實就一個瀏覽器。
使用alt-cmd-I 或者選擇菜單 View>Developer> Toggle Developer Tools
Testing當(dāng)然我們還需要寫測試功能,所有的測試代碼在 spec目錄下面,使用jasmine來測試,所以大家要熟悉下jasmine的語法,其實各種測試都差不多。
使用cmd-alt-ctrl-p或者Developer>Run Package Spec菜單開始執(zhí)行測試。一般來說都會有錯誤,如下所示:
你可以自己慢慢的修改測試代碼,保證通過,同時保證自己的package代碼不錯。
Publishing現(xiàn)在我們的package沒問題了,也測試通過了,剩下的就是發(fā)布了,要注意一些小的細(xì)節(jié),要不發(fā)布很可能失敗。
Prepare Your Packagepackage.json 一定要有 name, description 和 repository字段
package.json 要有 version字段來表示版本號" 0.0.0"
package.json 會有 engines 來表示工作環(huán)境,一般就是 {"Atom":">=1.0.0 <2.0.0"}
要有一個README.md文件在根目錄
整個文件要在github上有自己的地址,并且已經(jīng)提交
Publish Your Package在你發(fā)布之前,最好去atom官網(wǎng)上找找會不會有跟你同名的package,如果有,你就只能修改名字,確保沒有之后, 你就可以在你的目錄下 使用
apm publish minor
來發(fā)布你的package了
這個命令會做以下事情:
注冊一個package的名字在atom.io上,如果是第一次發(fā)布
更新version從package.json文件中,然后提交
創(chuàng)建一個新的 git tag 給這次提交
推送這個tag和分支到 github上
用新發(fā)布的version更新到 atom.io 上
如果你是第一次提交,可能會需要填寫你github的用戶名和密碼,這個你跟著guide走就行了,注意別填錯了,主要是數(shù)字別用小鍵盤。
term中顯示成功之后,你就可以在
https://atom.io/packages/my-package
看到你的package的頁面了。記得編寫README.md的內(nèi)容給大家看。
說說 minor這個意思,其實publish后面跟的參數(shù)有三個選項的。
major: 表示給 apm 增加版本號的第一個數(shù)字,1.0.0 這樣子 git tag 也會是 v1.0.0
minor: 第二個數(shù)字, 0.1.0的含義
patch: 最后一個數(shù)字, 0.0.1的意思
這個是跟版本號管理對應(yīng)的,一般數(shù)來 major對應(yīng)是往后兼容性的改變,例如 修改默認(rèn)設(shè)置或者刪除功能, minor 一般就是添加一個小功能或者優(yōu)化。 patch 就是修復(fù)小的bug。
以上就一個完整的atom package開發(fā)和發(fā)布的過程,主要參考官網(wǎng)的文檔,里面有我一定的心得。
同時,介紹我的新插件 https://atom.io/packages/vue-format
主要是最近開始寫 vue.js,然后webpack打包,使用.vue的文件方式,結(jié)果沒有能格式化文件的插件,所以給atom寫了一個,這是 0.1.0的版本,有問題很正常,我后面還會慢慢優(yōu)化,如果大家有興趣,可以一起來優(yōu)化,或者給我提各種issue,歡迎交流
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/78234.html
摘要:由于這個插件有式的程序返回值和運(yùn)行時間的顯示,我希望我的插件也具有這個功能。這個命令在后臺其實會做很多事情,比如設(shè)置中的版本號添加版本標(biāo)簽并提交到版本庫中。可以看到第一次提交插件的版本號為。 最近在學(xué)習(xí)Python,自然也安裝了Atom編輯器的一些Python插件。有一個插件名字叫做atom-python-run,作用很簡單,就是按F5運(yùn)行當(dāng)前Python文件。不過這個插件有一個問題,...
摘要:將剪切板中的數(shù)據(jù)轉(zhuǎn)換為然后暫存到本地,通過本地文件的方式來進(jìn)行上傳七牛。以上,就是開發(fā)一個插件的完整流程咯。 最近用Atom寫博客比較多,然后發(fā)現(xiàn)一個很嚴(yán)重的問題。。沒有一個我想要的上傳圖片的方式,比如某乎上邊就可以直接copy/paste文件,然后進(jìn)行上傳。然而在Atom上沒有找到類似的插件,最接近的一個,也還是需要手動選擇文件,然后進(jìn)行上傳。這個操作流程太繁瑣,索性自己寫一個插件用...
摘要:注意本文目的不在開發(fā)一個什么什么插件,只告訴你如何進(jìn)行開發(fā)注下文并無太多代碼,代碼建議到你新建一個模版插件然后你就擁有了所有的代碼,然后根據(jù)下文加深自己的理解,相信你會看懂它。開始開發(fā)入口文件有個方法釋放資源的方法不要做其他事情。 atom高級用法???除了自定義功能基本沒啥好玩,抱著裝逼的想法,搜了一波atom插件入門,發(fā)現(xiàn)說得太迷糊(可能是我太菜),然后打開了官網(wǎng)的插件文檔,細(xì)細(xì)的...
摘要:地址點個,給我們一點動力中文文檔地址交流地址點個,謝謝這套費了幾個月時間和很多心血,現(xiàn)在已經(jīng)趨于完善,你完全可以在你的生產(chǎn)環(huán)境中試著使用。 介紹 構(gòu)建自己的UI庫,你必須要對一款打包工具熟悉(webpack, gulp或者grunt), 本文以webpack為例。 github 地址: https://github.com/reming0227... (點個 star,給我們一點動力 ...
摘要:使用一個事件驅(qū)動的非阻塞式的模型,讓它輕量而高效。也就是說提供了用編寫服務(wù)器的可能性,這種服務(wù)器具有令人難以置信的性能。正如官方聲明所說是一個使用與瀏覽器相同引擎的運(yùn)行時。這意味著有兩個發(fā)布版本穩(wěn)定版和試驗版。 本文轉(zhuǎn)載自:眾成翻譯譯者:網(wǎng)絡(luò)埋伏紀(jì)事鏈接:http://www.zcfy.cc/article/1748原文:https://blog.risingstack.com/nod...
閱讀 2612·2021-11-22 15:25
閱讀 1440·2021-11-15 17:59
閱讀 1138·2021-09-29 09:34
閱讀 1548·2021-09-26 09:46
閱讀 3035·2021-09-02 15:40
閱讀 1193·2019-08-30 15:56
閱讀 3285·2019-08-30 15:55
閱讀 696·2019-08-29 17:08