給新手開(kāi)發(fā)者的 Svelte 教程

從未摸過(guò) Node.js 或者命令行的初學(xué)者也沒(méi)問(wèn)題。

注意:原文發(fā)表于2019-04-16扫尺,隨著框架不斷演進(jìn)启昧,部分內(nèi)容可能已不適用。

這篇簡(jiǎn)短的指南旨在幫助你去安裝 Svelte 和跑起來(lái)(已經(jīng)看過(guò)教程的童鞋疆柔,想開(kāi)始創(chuàng)建 Svelte 應(yīng)用咒精,但又礙于沒(méi)有多少 JavaScript 構(gòu)建工具使用經(jīng)驗(yàn)的人)。

如果有哪些不合理或者我們沒(méi)有覆蓋到的地方旷档,請(qǐng)隨時(shí)提出問(wèn)題或者建議你直接編輯這個(gè)頁(yè)面模叙,可以和我們一起幫助更多的人。

如果你遵循本指南的任何步驟但是卡住了鞋屈,聊天室是最佳的求助地點(diǎn)范咨。

先說(shuō)說(shuō)重點(diǎn)

你將使用命令行故觅,也就是終端。

在 Windows 上湖蜕,可以通過(guò)“開(kāi)始”菜單運(yùn)行“命令提示符”來(lái)打開(kāi)它逻卖。

在 Mac 上,同時(shí)按下 Cmd空格鍵打開(kāi) Spotlight昭抒,然后輸入 Terminal.app评也。

而在大多數(shù) Linux 系統(tǒng)上,使用 Ctrl+Alt+T 快捷鍵可以打開(kāi)命令行灭返。

與日常使用的 GUI(圖形用戶(hù)界面)相比盗迟,命令行是一種與你計(jì)算機(jī)(或者另一臺(tái)計(jì)算機(jī),不過(guò)這是另一個(gè)話題哈)進(jìn)行交互的方式熙含。

它具有比 GUI 更強(qiáng)大的功能和控制力罚缕。

進(jìn)入命令行后,你可以使用 ls(在 Windows 上是 dir)命令來(lái)瀏覽文件系統(tǒng)怎静,ls 用于列出當(dāng)前目錄的內(nèi)容邮弹。

cd 命令可以改變當(dāng)前目錄,假設(shè)當(dāng)前目錄下有一個(gè)“Development”的文件夾蚓聘,則可以輸入:

cd Development

進(jìn)入這個(gè)文件夾腌乡。

進(jìn)入后,通過(guò) mkdir 命令可以創(chuàng)建一個(gè)新的目錄:

mkdir svelte-projects
cd svelte-projects

限于篇幅夜牡,我們不會(huì)完整地介紹全部命令行与纽,這里有一些很有用的命令:

  • cd .. —— 退回到當(dāng)前目錄的上一級(jí)

  • cat my-file.txt —— 在 Mac/Linux 上(Windows 上可直接輸入 my-file.txt),展示 my-file.txt 的內(nèi)容塘装。

  • open .(Windows 上使用 start .)—— 在 Finder 或者文件夾瀏覽器打開(kāi)當(dāng)前目錄急迂。

安裝 Node.js

Node 是一種在命令行上運(yùn)行 JavaScript 的程序,許多 Tool 都使用它蹦肴,包括 Svelte僚碎。

如果你還沒(méi)有安裝它,最簡(jiǎn)單的方法就是直接從官網(wǎng)去下載最新版本阴幌。

安裝后勺阐,你就可以這3個(gè)新命令:

  • node my-file.js —— 運(yùn)行 my-file.js 這個(gè) JavaScript

  • npm [子命令] —— npm 是一種安裝 Node 程序依賴(lài)包的方法,例如 svelte 這個(gè)程序包裂七。

  • npx [子命令] —— 這是一種便捷的方式皆看,允許你不用永久安裝就能運(yùn)行 npm 上的程序包仓坞。

安裝文本編輯器

要開(kāi)始編寫(xiě)代碼背零,你需要一個(gè)好的編輯器。

最受歡迎的就是 Visual Studio Code 了无埃,當(dāng)然這是有原因的:它經(jīng)過(guò)精心設(shè)計(jì)且功能齊全徙瓶,還要大量的擴(kuò)展插件(包括 Svelte 的擴(kuò)展毛雇,當(dāng)你編寫(xiě)組件時(shí),它能提供語(yǔ)法提示和診斷信息侦镇。)

創(chuàng)建一個(gè)項(xiàng)目

我們就按照《Svelte 極簡(jiǎn)入門(mén)》里第二部分的說(shuō)明進(jìn)行操作灵疮。

首先,我們會(huì)使用 npx 運(yùn)行 degit壳繁,這是一個(gè)從 Github 或者其他網(wǎng)站的代碼庫(kù)中 clone 項(xiàng)目模板的程序震捣。

你也可以不用項(xiàng)目模板,但這可以減少很多設(shè)置工作闹炉。

你需要安裝了 Git 才能使用 degit蒿赢。(你終究是要學(xué)習(xí) Git 的,大多數(shù)程序員都用它來(lái)管理他們的項(xiàng)目渣触。)

在命令行上切換到要?jiǎng)?chuàng)建新項(xiàng)目的目錄羡棵,然后輸入以下命令(你可以復(fù)制粘貼下面全部?jī)?nèi)容,不過(guò)建議你一行一行地敲然后運(yùn)行嗅钻,這樣可以形成肌肉記憶)皂冰。

npx degit sveltejs/template my-svelte-project
cd my-svelte-project
npm install

這將會(huì)創(chuàng)建一個(gè)新目錄 my-svelte-project,并從 sveltejs/template 代碼庫(kù)中新增很多文件到這里养篓,然后會(huì)使用 npm 安裝很多程序包秃流。

用你的文本編輯器打開(kāi)這個(gè)目錄看看。

程序的源碼就位于 src 目錄下觉至,你應(yīng)用可以讀取的文件都在 public 目錄下剔应。

package.json 文件中,有一個(gè)地方叫“scripts”语御。這些腳本定義了使用程序的快捷方式 —— dev峻贮,buildstart

要在開(kāi)發(fā)模式下啟動(dòng)應(yīng)用应闯,只需要輸入以下命令:

npm run dev

運(yùn)行 dev 腳本將會(huì)啟動(dòng)一個(gè)名為 Rollup 的程序纤控。

Rollup 要做的事情,就是拿到你的應(yīng)用的源文件(目前位置有 src/main.jssrc/App.svelte)碉纺。

然后將它們發(fā)給其他程序(在這個(gè)例子中包括有 Svelte)船万,并將它們轉(zhuǎn)換為可以在瀏覽器中打開(kāi)時(shí)實(shí)際運(yùn)行的代碼。

至此骨田,你可以打開(kāi)瀏覽器并導(dǎo)航到 http://localhost:5000耿导。這是運(yùn)行在端口 5000 上的本地 Web 服務(wù)器(即 localhost)程序。

試著修改一下 src/App.svelte 然后保存态贤,應(yīng)用會(huì)自動(dòng)重新加載你最終的修改舱呻。

構(gòu)建你的應(yīng)用

來(lái)到最后一步,我們以“開(kāi)發(fā)模式”運(yùn)行該程序。

在 dev 開(kāi)發(fā)模式下箱吕,Svelte 會(huì)添加一些有助于調(diào)試的額外代碼芥驳,并且 Rollup 跳過(guò)使用 Terser 壓縮 JavaScript 的這一步。

將你的應(yīng)用公諸于世之時(shí)茬高,你應(yīng)該以“生產(chǎn)模式”來(lái)構(gòu)建它兆旬,它可以使最終用戶(hù)程序盡可能小巧高效。

為此怎栽,請(qǐng)使用 build 命令:

npm run build

你的 public 目錄下現(xiàn)在多了一個(gè)已經(jīng)壓縮過(guò)的 bundle.js 文件丽猬,應(yīng)用的 JavaScript 就包含在其中。

你可以這樣運(yùn)行它:

npm run start

這將在 http://localhost:5000 上運(yùn)行它熏瞄。

下一步

要與全世界共享你的應(yīng)用宝鼓,你還需要部署它。

有很多方法可以做這件事情 —— 在項(xiàng)目中的 README.md 文件里列舉了一些方法巴刻。


< The End >

- 窗明幾凈愚铡,靜候時(shí)日變遷 -

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市胡陪,隨后出現(xiàn)的幾起案子沥寥,更是在濱河造成了極大的恐慌,老刑警劉巖柠座,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件邑雅,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡妈经,警方通過(guò)查閱死者的電腦和手機(jī)淮野,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)吹泡,“玉大人骤星,你說(shuō)我怎么就攤上這事”疲” “怎么了洞难?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)揭朝。 經(jīng)常有香客問(wèn)我队贱,道長(zhǎng),這世上最難降的妖魔是什么潭袱? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任柱嫌,我火速辦了婚禮,結(jié)果婚禮上屯换,老公的妹妹穿的比我還像新娘编丘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布瘪吏。 她就那樣靜靜地躺著,像睡著了一般蜗巧。 火紅的嫁衣襯著肌膚如雪掌眠。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,208評(píng)論 1 299
  • 那天幕屹,我揣著相機(jī)與錄音蓝丙,去河邊找鬼。 笑死望拖,一個(gè)胖子當(dāng)著我的面吹牛渺尘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播说敏,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼鸥跟,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了盔沫?” 一聲冷哼從身側(cè)響起医咨,我...
    開(kāi)封第一講書(shū)人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎架诞,沒(méi)想到半個(gè)月后拟淮,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡谴忧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年很泊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沾谓。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡委造,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出均驶,到底是詐尸還是另有隱情争涌,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布辣恋,位于F島的核電站亮垫,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏伟骨。R本人自食惡果不足惜饮潦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望携狭。 院中可真熱鬧继蜡,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至碘举,卻和暖如春忘瓦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背引颈。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工耕皮, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蝙场。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓凌停,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親售滤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子罚拟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

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