當前位置:首頁 » 網頁前端 » 前端pkg
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

前端pkg

發布時間: 2022-09-11 10:28:14

A. Web前端工程師該如何選擇web前端模板引擎

今天小編要跟大家分享的文章是關於Web前端工程師該如何選擇web前端模板引擎?如果你正在從事web前端工作,如果你也想要了解如何選擇web前端模板引擎的知識,那麼就來和小編一起看一看本文為大家介紹的內容吧~


一、Web模板就在那裡


模板引擎負責組裝數據,以另外一種形式或外觀展現數據。瀏覽器中的頁面是Web模板引擎最終的展現。


無論你是否直接使用模板引擎,Web模板一直都在,不在前端就在後端,它的出現甚至可以追溯到超文本標記語言HTML標准正式確立之前。


二、服務端的模板引擎


我所知道最早的Web模板引擎是PHP,它正式誕生於1997年,工作在伺服器端。讓我們看看PHP官方的intro-whatis:


PHP(「PHP:Hypertext
Preprocessor」,超文本預處理器的縮寫)是一種被廣泛應用的開放源代碼的多用途腳本語言,它可嵌入到HTML中,尤其適合web開發。


PHPer普遍贊同PHP本身就是最天然、原生的PHP模板引擎,因為她本來就是。在PHP的世界裡多次出現過再包裝的模板引擎,著名的有
smarty。


其它伺服器端語言很多都有HTML模板引擎,比如JSP、mustache。


毫無疑問,這些伺服器端模板引擎最終生成的結果是HTML(XML)字元串,處理流程邏輯使用宿主語言本身的語法實現。


它們的共同特徵:HTML只是個字元串,最終結果可能還需要類似Tidy這樣的清潔或修正驗證工具。


這里提出一個問題:二次封裝的smarty有存在的必要麼?


三、瀏覽器端的模板引擎


我所知道最早的前端模板引擎是jCT,它託管於Google
Code,誕生於2008年,宿主語言是JavaScript,工作在瀏覽器中。很榮幸,我就是jCT的作者,相關早期博客可以查看achun、githubjCT
備份。


直到今天寫這篇文章,我才發現pure-js這篇文章裡面也提到不少先行者——jemplate最早在2006年就創建了。


今天在OSC搜索JavaScript模板引擎你會得到100+個結果,下邊列舉一些:


·輕量度:tpl.js、T.js


·認知度:arttemplate、mustache.js、doT.js、handlebars.js、pug


·DOM-tree-based:domTemplate、transparency、plates


·VDOM-based:htmltemplate-vdom、virtual-stache、html-patcher


·流行框架:Vue.js、ReactJS、riot


·Real-DOM:PowJS


它們的共同特徵:全都支持插值。


這里還有templating-engines受歡迎度的對比,甚至best-javascript-templating-engines
投票及正反方的理由。


四、如何選擇


我認為存在即合理,每個引擎、框架總有可取之處,至少在你的應用里,在某個時代,所以本文不會評論某個引擎哪一點不好,那樣是不客觀的。現在回答前邊提到的問題:smarty
有存在的必要麼?我的答案是:有。理由很簡單,看給誰用、看大背景。


對於前後端沒有分離的應用,或前端人員對後端語言不夠熟悉,或因崗位職責需要,那麼前端人員掌握一種比較通用的模板語法(語言)是現實的,反之讓PHPer自己去使用
smarty那就太浪費技能了。


下面是通常意義上的引擎選擇建議:


1.前提,選擇的引擎能滿足數據渲染需求,且不和現有依賴沖突,如果你已經非常熟悉某個引擎,那你已經有答案了。


2.是一次性的項目需求么?是的話直接選擇輕量的,學習復雜度最低的。


3.是要做組件開發么?


4.引擎支持預編譯結果,不必每次都實時編譯么?


5.要跨平台么?有官方提供支持的,首選類React-JSX的引擎或純粹的VDOM引擎。


6.選擇學習或維護復雜度最低的,眾所周知,開發者對調試的時間超過寫代碼的時間深惡痛絕。


7.最後才是性能對比,性能對比是一件非常細致的工作,他人的對比結果不一定符合你的場景。


我認為應該弱化語法風格的對比,偏好是沒有可比性的,一些語法甚至有特殊的背景原因。


為什麼最後才是性能對比?


性能的確很重要,但如果性能還沒有影響到你的應用體驗度,那就忽視它。很難真實地模擬應用場景,通常只有通過真實場景來檢驗,目前的測試工具還達不到這種效果。


前述問題有些有固定答案,下面討論餘下的問題:如何考慮組件開發、支持預編譯、復雜度?


五、組件開發


進行組件開發已經不再是選擇模板引擎的問題了,這是生態環境選擇的問題。如果你的應用需要更快地完成,那麼時間點是第一位的,就選擇流行框架,有足夠多的組件讓你使用或參考。如果你的應用有獨立的生態環境,需要技術選型以便長期維護,那繼續看下文。


六、預編譯


預編譯應該具備:


1.編譯結果在目標環境中不再需要編譯過程。


2.編譯結果可調試性,這意味著結果應該包含原生ECMAScript代碼,而不是純粹的數據描述。


大家都知道React-JSX是支持預編譯的,官方的說法是ReactWithoutJSX,即總是build過的。


一些基於字元串處理的引擎也支持預編譯。如果你需要預編譯,建議拋棄編譯結果依然是基於字元串拼接的引擎,那樣還不如不預編譯,那是HTML5未被廣泛支持之前的技術手段。


至少也要有類似React-JSX這樣的編譯結果才具有可調試性。備註:Vue.js支持多種模板引擎,可達到同樣的效果。


原ReactJS代碼,其中用到了WebComponents技術:classHelloMessageextendsReact.Component{

render(){

return

Hello{this.props.name}!

B. 學哪幾種語言最實用 學哪種語言就業前景好

什麼是Go?
Go語言是谷歌2009發布的第二款開源編程語言。
Go語言專門針對多處理器系統應用程序的編程進行了優化,使用Go編譯的程序可以媲美C或C++代碼的速度,而且更加安全、支持並行進程。不僅可以開發web,可以開發底層,目前知乎就是用golang開發。區塊鏈首選語言就是go,以太坊,超級賬本都是基於go語言,還有go語言版本的btcd.
Go的目標是希望提升現有編程語言對程序庫等依賴性(dependency)的管理,這些軟體元素會被應用程序反復調用。由於存在並行編程模式,因此這一語言也被設計用來解決多處理器的任務。
Google對Go寄予厚望。其設計是讓軟體充分發揮多核心處理器同步多工的優點,並可解決面向對象程序設計的麻煩。它具有現代的程序語言特色,如垃圾回收,幫助程序設計師處理瑣碎但重要的內存管理問題。Go的速度也非常快,幾乎和C或C++程序一樣快,且能夠快速製作程序。
Go的網站就是用Go所建立,但Google有更大的野心。該軟體是專為構建伺服器軟體所設計(如Google的Gmail)。Google認為Go還可應用到其他領域,包括在瀏覽器內執行軟體,取代JavaScript的角色。
為什麼要學習GO語言,GO的優勢是什麼?
1、 Go有什麼優勢
Go的優勢
1:性能
2:語言性能很重要
3:開發者效率&不要過於創新
4:並發性&通道
5:快速的編譯時間
6:打造團隊的能力
7:強大的生態系統
8:GOFMT,強制代碼格式
9:gRPC 和 Protocol Buffers

可直接編譯成機器碼,不依賴其他庫,glibc的版本有一定要求,部署就是扔一個文件上去就完成了。
靜態類型語言,但是有動態語言的感覺,靜態類型的語言就是可以在編譯的時候檢查出來隱藏的大多數問題,動態語言的感覺就是有很多的包可以使用,寫起來的效率很高。
語言層面支持並發,這個就是Go最大的特色,天生的支持並發,我曾經說過一句話,天生的基因和整容是有區別的,大家一樣美麗,但是你喜歡整容的還是天生基因的美麗呢?Go就是基因裡面支持的並發,可以充分的利用多核,很容易的使用並發。
內置runtime,支持垃圾回收,這屬於動態語言的特性之一吧,雖然目前來說GC不算完美,但是足以應付我們所能遇到的大多數情況,特別是Go1.1之後的GC。
簡單易學,Go語言的作者都有C的基因,那麼Go自然而然就有了C的基因,那麼Go關鍵字是25個,但是表達能力很強大,幾乎支持大多數你在其他語言見過的特性:繼承、重載、對象等。
豐富的標准庫,Go目前已經內置了大量的庫,特別是網路庫非常強大,我最愛的也是這部分。
內置強大的工具,Go語言裡面內置了很多工具鏈,最好的應該是gofmt工具,自動化格式化代碼,能夠讓團隊review變得如此的簡單,代碼格式一模一樣,想不一樣都很困難。
跨平台編譯,如果你寫的Go代碼不包含cgo,那麼就可以做到window系統編譯linux的應用,如何做到的呢?Go引用了plan9的代碼,這就是不依賴系統的信息。
內嵌C支持,前面說了作者是C的作者,所以Go裡面也可以直接包含c代碼,利用現有的豐富的C庫。
2、Go適合用來做什麼
伺服器編程,以前你如果使用C或者C++做的那些事情,用Go來做很合適,例如處理日誌、數據打包、虛擬機處理、文件系統等。
分布式系統,資料庫代理器等
網路編程,這一塊目前應用最廣,包括Web應用、API應用、下載應用、
內存資料庫,前一段時間google開發的groupcache,couchbase的部分組建
雲平台,目前國外很多雲平台在採用Go開發,CloudFoundy的部分組建,前VMare的技術總監自己出來搞的apcera雲平台。
3、Go成功的項目
nsq:bitly開源的消息隊列系統,性能非常高,目前他們每天處理數十億條的消息
docker:基於lxc的一個虛擬打包工具,能夠實現PAAS平台的組建。
packer:用來生成不同平台的鏡像文件,例如VM、vbox、AWS等,作者是vagrant的作者
skynet:分布式調度框架
Doozer:分布式同步工具,類似ZooKeeper
Heka:mazila開源的日誌處理系統
cbfs:couchbase開源的分布式文件系統
tsuru:開源的PAAS平台,和SAE實現的功能一模一樣
groupcache:memcahe作者寫的用於Google下載系統的緩存系統
god:類似redis的緩存系統,但是支持分布式和擴展性
gor:網路流量抓包和重放工具

下面列出來了一些使用的用戶
GoUsers - go-wiki - A list of organizations that use Go.
4、Go還存在的缺點
以下缺點是我自己在項目開發中遇到的一些問題:
Go的import包不支持版本,有時候升級容易導致項目不可運行,所以需要自己控制相應的版本信息
Go的goroutine一旦啟動之後,不同的goroutine之間切換不是受程序控制,runtime調度的時候,需要嚴謹的邏輯,不然goroutine休眠,過一段時間邏輯結束了,突然冒出來又執行了,會導致邏輯出錯等情況。
GC延遲有點大,我開發的日誌系統傷過一次,同時並發很大的情況下,處理很大的日誌,GC沒有那麼快,內存回收不給力,後來經過profile程序改進之後得到了改善。
pkg下面的圖片處理庫很多bug,還是使用成熟產品好,調用這些成熟庫imagemagick的介面比較靠譜
最後還是建議大家學習Go,這門語言真的值得大家好好學習,因為它可以做從底層到前端的任何工作。

C. go語言可以做什麼

go語言在高性能分布式系統領域有很好的開發效率,可以主要用於伺服器端的開發,能夠進行處理日誌、數據打包、虛擬機處理、文件系統、分布式系統、資料庫代理等。

Go(又稱Golang)是Google的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發的一種靜態強類型、編譯型語言。Go 語言語法與C相近,但功能上有:內存安全,GC(垃圾回收),結構形態及 CSP-style並發計算。

撰寫風格:

在Go中有幾項規定,當不匹配以下規定時編譯將會產生錯誤。

每行程序結束後不需要撰寫分號(;)。

大括弧({)不能夠換行放置。

if判斷式和for循環不需要以小括弧包覆起來。

Go亦有內置gofmt工具,能夠自動整理代碼多餘的空白、變數名稱對齊、並將對齊空格轉換成Tab。

D. 如何獲取微信小程序前端源碼

微信小程序都是在本地運行的,所以我們可以在我們的手機內存中找到小程序的源碼文件。

如果你的手機已經root了,那麼可以直接查找/data/data/com.tencent.mm/MicroMsg/.../appbrand/pkg/路徑中有一段...,這里表示不確定具體一個,一般是很長的數字和字母組成的文件 ,可以先將所有的小程序文件夾刪除,然後重新進入你想要的小程序,這樣就可以確定是哪個文件了,當然,如果沒有root可以使用模擬器來拿,建議還是使用模擬器,更方便一些。

拿到了wxpkg文件,但是我們還差一步,需要將這個文件進行反編譯得到內部的各個文件才可以。

wxpkg 是經過微信加密的文件,無法直接通過解壓來獲得,如果開發比較深入的話,可以直接拿到github的star比較多的wxunpkg ,然後安裝運行去解壓,如果不是很擅長的話,可以直接使用已經做好的傻瓜式的桌面軟體,直接進行反編譯處理 。

原理介紹:網頁鏈接

軟體獲取:網頁鏈接

我的建議還是直接去看下github的源碼,了解下反編譯原理,然後nodejs語言不擅長可以拿其他的語言來嘗試處理下,算是學習也可以。

E. npm安裝spm出錯,請問是什麼問題

SPM v.1.1.2 With SeaJS
SPM v1.1.2使用指南
1.SPM用途
SeaJS提供了模塊化開發的機制,在代碼開發完後,還需要做產品發布相關的一些操作。 這些可以通過SPM來完成,SPM提供了模塊安裝、壓縮、打包部署等功能。
2.SPM安裝
1.從nodejs官網下載最新版本的node。 這里以node-0.8.14為例,直接下載windows版本的安裝包即可,默認安裝到"C:\Program Files\nodejs", 會自動添加到path中,查看一下版本。
C:\Documents and Settings\Administratornode -v
v0.8.14
2.新版的node都帶了npm,這里通過npm來安裝spm。下面指定安裝1.1.2版本,在當前為最新版本。 如果不指定版本號,默認安裝最新版本。安裝包大小為11.8M,根據網速不同,請耐心等待。
C:\Documents and Settings\Administratornpm install [email protected] -g
npm http GET https://registry.npmjs.org/spm/1.1.2
npm http 200 https://registry.npmjs.org/spm/1.1.2
npm http GET https://registry.npmjs.org/spm/-/spm-1.1.2.tgz
npm http 200 https://registry.npmjs.org/spm/-/spm-1.1.2.tgz
npm http GET https://registry.npmjs.org/spm-env
npm http GET https://registry.npmjs.org/csslint
npm http GET https://registry.npmjs.org/async
...
下載完spm後,會根據壓縮包中的package.json自動安裝相關的依賴包,最後會顯示如下的界面。
C:\Documents and Settings\Administrator\Application Data\npm\spm - C:\Documents and Settings\Administrator\Application
Data\npm\node_moles\spm\bin\spm
[email protected] C:\Documents and Settings\Administrator\Application Data\npm\node_moles\spm
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected].
0, [email protected], [email protected], [email protected])
3.安裝後檢查一下版本
C:\Documents and Settings\Administratorspm -v
v1.1.2
如果這種方式安裝比較慢,可以git 源碼後安裝,詳見官方文檔。
本次測試使用的是Widnows XP操作系統
以下演示使用的是v1.1.2版本,不同的版本可能存在差異,請自行留意。
3.SPM查找和安裝模塊
我們先在C盤根目錄建立一個assets目錄,用於保存前端開發的所有文件。
先使用spm下載開發需要的模塊,spm默認的模塊伺服器為http://moles.spmjs.org/。 也可以自己在內網搭搭設一個模塊伺服器,這里不詳述。
我們可以先使用spm search命令在模塊伺服器查找可安裝的模塊的版本。
C:\assetsspm search seajs
C:\assetsspm search jquery

C:\assetsspm search mustache //以mustache為例子
...
versions: //這里列出可用的版本
0.4.0:
- mustache.js
0.5.0:
- mustache.js
root: gallery //顯示模塊的跟目錄
name: mustache
tag:
type:

C:\assetsspm install [email protected] //指定安裝seajs版本
C:\assetsspm install gallery.jquery //不指定版本號,默認安裝伺服器上jquery最新版本
C:\assetsspm install gallery.mustache //不指定版本號,默認安裝伺服器上mustache最新版

F. CPU標簽上的LGA775pkg的什麼意思

LGA775PKG 是指CPU元件的封裝。「封裝」是指電子元件物理外觀參數。
CPU上面的編號代表了該CPU的主要性能指標。如產品系列、主頻、緩存容量、使用電壓、封裝方式、產地、生產日期,通過識別CPU編號,你可以初步認定CPU的工作頻率、外頻、屬於何系列的,防止一些非法商家用超頻的CPU冒充高頻率產品。

PIII Confidential編號格式:xxxEBkkkMMM2.0VS1 abcde abcdefgh-0123
Xxx: :代表CPU工作頻率
EB :E=採用0.18微米製造工藝;B=133MHZ FSB前端匯流排
Kkk :代表二級緩存的容量
MMM:代表CPU的外部頻
2.0V :代表核心電壓
S1 :代表CPU的架構,S1=Slot 1
Abcde:規格號
abcdefgh-0123 :序列號,其中第一位代表產地.0=Costa Rica(哥斯大黎加),1=Philippines(菲律賓),9=Malaysia(馬來西亞),Y=Ireland(愛爾蘭))接下來兩位是代表第多少周生產。

PIII Coppermine的編號格式:RaaaaaHZmmmkkkEC abcde abcdefgh-0123
R :R=Socket 370架構
Aaaaa :代表採用的核心。80525=Katmai核心,80526=Coppermine核心
HZ :代表CPU的外頻
Mmm :代表CPU的工作頻率Hz
Kkk :代表CPU二級緩存容量
EC :代表ECC糾錯
Abcde:規格號
abcdefgh-0123 :同PIII Confidential

Celeron編號格式:FV524RX mmmkkk ABCDE XXXXX L01234567-1234
FV524RX:保留
Mmm :代表CPU工作頻率
Kkk :代表二級緩存的容量
ABCDE :規格號
XXXXX:產地,MALAY=馬來西亞,COSTA RICA=哥斯大黎加
L01234567-1234 :其中第一個L代表產地(0=Costa Rica(哥斯大黎加),1和9= Malaysia(馬來西亞));接下來的123代表第多少周生產

Celeron II編號的識別方法與PIII Coppermine相同

Intel PII編號格式:W8065xhzmmmkkkEC ABCDE abcdefgh-0123
W :代表出售對象,x=零售商,空項=OEM廠商
8065 :保留
x :代表採用的核心,2=Klamath核心即0.35微米製造工藝,3= Deschutes核心即0.25微米製造工藝
hz :代表採用的外頻
mmm:表處理器的工作頻率
kkk :代表二級緩存的容量
EC :代表ECC糾錯
ABCDE :規格號
abcdefgh-0123 :其中第一位代表產地,0=Costa Rica(哥斯大黎加),1=Philippines(菲律賓),9=Malaysia(馬來西亞),Y=Ireland(愛爾蘭));接下來的兩位代表第多少周生產。

Duron編號格式:
例如PGA封裝的Duron編號:AMD-D800AUT1B:
AMD-D:代表AMD DURON毒龍系列
800 :代表CPU的主頻
A :代表封裝方式(M=卡匣式,A=PGA,其他為TBD)
U :代表工作電壓(S=1.5V;U=1.6V;P=1.7V;M=1.75V;N=1.8V)
T :代表工作溫度(Q=60C;X=65C;R=70C;Y=75C;T=90C;S=95C)
1 :代表二級緩存容量(1=64KB;2=128KB;3=256KB)
B :代表最大匯流排頻率(A=B=200MHz;C=266MHz)

Athlon編號格式:
例如:AMD-K7 800MPR52B A表示的意義:
AMD-K7:代表AMD Athlon產品系列
800 :代表CPU的主頻
M :代表封裝方式(M=卡匣式,P=PGA,其他為TBD)
P或T:代表工作電壓(一般為1.03-2.05V)
R :代表工作溫度 (如果前面一個字母為T,那麼R的最大值是70攝氏度)
5 :代表二級緩存容量(5=512KB,1=1MB,2=2MB)
2 :代表緩存分類(1=全速,2=1/2速)
B :代表最大匯流排頻率(B=200MHz)
A :代表保留特性(前面有三個空格,A=0.18微米製造工藝,C=0.25微米製造工藝)。

PGA封裝的Athlon編號:直接刻在CPU的內核表面上,例如AMD-A0850APT3B:
AMD-A0:代表AMD Athlon雷鳥產品系列
850 :是CPU的主頻
A :代表封裝方式(M=卡匣式,A=PGA,其他為TBD)
P :代表工作電壓(S=1.5V;U=1.6V;P=1.7V;M=1.75V;N=1.8V)
T :代表工作溫度(Q=60C;X=65C;R=70C;Y=75C;T=90C;S=95C)
3 :代表二級緩存容量(2=128KB;3=256KB)
B :代表最大匯流排頻率(A=B=200MHz;C=266MHz)。

AMD K6-2編號格式:
AMD-K6-2/mmm xvC 2.2V CORE / 3.3V I/O A 生產日期 AMD
mmm:代表工作頻率
x :代表封裝方式,A=321針PGA
v :代表工作電壓,F=允許波動范圍2.1~2.3V Core和3.135~3.6V I/O
C :代表最高工作溫度,R=70度
2.2V CORE :2.2V CORE=標准2.2V核心電壓,
3.3V I/O :3.3V I/O=3.3V I/O電壓
A :代表修訂版
生產日期:其中第三四個數字代表第幾周生產,M代表Monday(星期一),PM代表下午。通常說來,時間越往後的產品,bug越少,性能也越好。

例如編號AMD-K6-2 /266 AFR 2.2V CORE / 3.3V I/O A 9903 MPM 1998 AMD 26351 N 則表示為AMD-K6-2CPU,是266的工作頻率,321針PGA封裝,最高工作溫度70度,第二行26351代表使用CXT核心(早期26050使用的是非CXT核心,26351使用CXT核心,AMD K6-2 400MHZ以上的CPU均用了CXT核心[ 允許更高的倍頻 ],比早期的k6-2,較容易超頻),N代表封裝廠編號

G. yeoman簡介與基礎使用

一、腳手架的概念

腳手架是前端工程化的集成,是前端工程化的發起者,其本質和作用是創建項目基礎結構、提供項目規范和約定。

二、通用工具

Yeoman 通用型腳手架工具,容易拓展,比較靈活,可創建屬於自己的腳手架。Plop項目開發過程中,創建特定類型的文件。

三、Yeoman 的基礎使用

一、腳手架的概念

腳手架是前端工程化的集成,是前端工程化的發起者,其本質和作用是創建項目基礎結構、提供項目規范和約定。

二、通用工具

Yeoman 通用型腳手架工具,容易拓展,比較靈活,可創建屬於自己的腳手架。Plop項目開發過程中,創建特定類型的文件。

三、Yeoman 的基礎使用

四、Yeoman Sub Generator

作用:在某些某些項目配置通用的的一些文件

在當前文件輸入命令:yo node:cli  // yarn  // yarn link  // chen-mole  --help

五、Yeoman 基本使用步驟

六、創建自定義的generator模塊

本質: 自定義的generator本質上就是一個npm 模塊

方法:1、yarn init 初始化package.json 文件

    2、 yarn add yeoman-generator 引入模塊

    3、創建文件目錄結構 generators/app/index.js 作為入口文件

    4、文件內容

5、yarn link 全局

6、新建文件夾,運行命令yo sample

注意事項:當時eoman-generator,為5.多的版本,報錯 。requires yeoman-environment at least 3.0.0,current version is 2.10.3,try reinstalling latest version of "of

最好指定yeoman-generator 的版本為 4.0.1  "yeoman-generator": "^4.0.1" 版本號最好為這個

七、利用模版也可以在指定目錄創建文件

this.fs.Tpl(tmpl,output,context) 。 接受三個參數

八、接受用戶指令,生成相關模版

九、批量生成多個項目文件的方法

創建文件路徑的數組,循環依次寫入文件

十、發布自定義的generator模塊到npm

1、創建本地倉庫一系列命令:

(1) 創建gitignore文件  echo node_mole > .gitigonre

(2)git init

(3)git  add .

(4)git commit -m 'fistcomit'

(5)git remote add origin 遠程倉庫地址

(6)git push -u origin master

2、進行打包編譯

(1)yarn pubilsh  此時會出現npm用的淘寶鏡像的報錯,改為制定到官方npm或者yarn 的地址

    改為 yarn publish --registry=https://registry.yarnpkg.com。

(2此時可能還會報錯 Couldn't publish package:  .......invalid for new packages.

    紅色框為小寫,發布所有的npm 包都要求小寫,不能有大寫,故把項目改為 generator-chen-react-com

(3)可能還會報錯 r Couldn't publish package: "https://registry.yarnpkg.com/generator-chen-react-com: Forbidden"

那去你的郵箱,激活npm 發來的郵件吧,點擊一下按鈕即可。

四、Yeoman Sub Generator

作用:在某些某些項目配置通用的的一些文件

在當前文件輸入命令:yo node:cli  // yarn  // yarn link  // chen-mole  --help

五、Yeoman 基本使用步驟

六、創建自定義的generator模塊

本質: 自定義的generator本質上就是一個npm 模塊

方法:1、yarn init 初始化package.json 文件

    2、 yarn add yeoman-generator 引入模塊

    3、創建文件目錄結構 generators/app/index.js 作為入口文件

    4、文件內容

5、yarn link 全局

6、新建文件夾,運行命令yo sample

注意事項:當時eoman-generator,為5.多的版本,報錯 。requires yeoman-environment at least 3.0.0,current version is 2.10.3,try reinstalling latest version of "of

最好指定yeoman-generator 的版本為 4.0.1  "yeoman-generator": "^4.0.1" 版本號最好為這個

七、利用模版也可以在指定目錄創建文件

this.fs.Tpl(tmpl,output,context) 。 接受三個參數

八、接受用戶指令,生成相關模版

九、批量生成多個項目文件的方法

創建文件路徑的數組,循環依次寫入文件

十、發布自定義的generator模塊到npm

1、創建本地倉庫一系列命令:

(1) 創建gitignore文件  echo node_mole > .gitigonre

(2)git init

(3)git  add .

(4)git commit -m 'fistcomit'

(5)git remote add origin 遠程倉庫地址

(6)git push -u origin master

2、進行打包編譯

(1)yarn pubilsh  此時會出現npm用的淘寶鏡像的報錯,改為制定到官方npm或者yarn 的地址

    改為 yarn publish --registry=https://registry.yarnpkg.com。

(2此時可能還會報錯 Couldn't publish package:  .......invalid for new packages.

    紅色框為小寫,發布所有的npm 包都要求小寫,不能有大寫,故把項目改為 generator-chen-react-com

(3)可能還會報錯 r Couldn't publish package: "https://registry.yarnpkg.com/generator-chen-react-com: Forbidden"

那去你的郵箱,激活npm 發來的郵件吧,點擊一下按鈕即可。

H. mac上安裝node.js彈出來的輸入框是什麼

輸入當前用戶的密碼

一、Mac 安裝 nodejs

前言

由於自己的拓展需求,要臨時使用到node.js,所以此次本君就在此mark下 Mac 下node.js的安裝和簡單的檢驗示例,給各位小主留個標記,提高下以後的效率。本章對於一些小白而言還是具有普及意義的。

step 1:

  • 訪問nodejs官網),點擊紅色選框區域的v6.10.0 LTS版本並下載,詳見下圖:

  • 官網版本.png

    step 2:

  • 雙擊剛下載的.pkg文件,打開之後按照步驟默認安裝就行,安裝完成後的截圖如下:

  • 安裝完成.png

    step 3:

  • 安裝完成後,需要進一步驗證下版本號等信息,在LaunchPad中打開終端,分別輸入 :
    npm -v
    node -v
    兩個命令,如下圖出現版本信息,說明安裝成功。

  • 終端驗證版本號.png

    step 4:

  • 新建一個js文件,nodejsTest.js , 輸入下面的代碼, 並保存

  • var http = require("http");


  • http.createServer(function(request, response) {

  • response.writeHead(200, { "Content-Type" : "text/plain"

  • });

  • response.write("Welcome to Nodejs");

  • response.end();

  • }).listen(8000, "127.0.0.1");console.log("Creat server on http://127.0.0.1:8000/");

  • 打開終端進入 nodejsTest.js 所在目錄, 輸入 node nodejsTest
    終端顯示如下:

    終端運行.png

    打開瀏覽器,點擊或者輸入http://127.0.0.1:8000/, 如果無法打開,可以將剛才新建的js文件中的.listen(8000, 「127.0.0.1」) 的ip監聽改成 .listen(8000),然後點擊或者輸入http://localhost:8000/

    瀏覽器測試.png

    二、#Mac系統下SublimeText運行JavaScript控制台

    Sublime Text 2下載地址:(ht.com/)

    Sublime Text 2.png

    前言

    JavaScript控制台的調試和輸出在瀏覽器端的使用算是工作中常用了,作為前端開發主力編輯器Sublime Text本身是不支持JavaScript的輸出和運行的。有的時候我們需要看一下輸出的效果,不得不藉助於F12查看控制台的程序。作為插件系統及其豐富的編輯器,我們可以通過添加Build System的方法來讓Sublime Text支持Javascript Console控制台調試。

    JSC方式(Mac OS X)

    step 1:

    Mac內置了一個javascript控制台程序,路徑比較深,(可以用命令"open 目錄"來打開目錄)

  • /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc


  • 打開目錄.png

    step 2:

    啟動Sublime Text,Tools > Build System > New Build System,如下圖所示:

    New Build System.png

    step 3:

  • 配置選項內容,保存在默認的User目錄

  • {

  • "cmd": ["/System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc", "$file"],

  • "selector": "source.js" }


  • 保存.png

  • 菜單SublimeText->preferences->browser pakager,打開目錄

  • 打開目錄.png

    step 4:

    新建一個JS文件測試控制台輸出效果,使用快捷鍵Command + B按鈕進行調試,需要注意的是這里使用debug,而不能使用console.log;選擇編譯系統,菜單Tools > Build System > Automatic或者JSC

  • var temp = {name:'lili',age:28};

  • for (var i = 2; i >= 0; i--) {

  • debug("Sublime Test3:"+i);

  • }

  • debug(temp);

  • // 輸出 // --> Sublime Test3:2 // --> Sublime Test3:1 // --> Sublime Test3:0 // --> [object Object]

  • 截圖如下所示:

    截圖.png

    NodeJS方式

    step 1:

    下載安裝NodeJS,安裝步驟詳見上文所述,檢查是否安裝了NodeJS,在終端中運行 node -v 命令

    step 2:

    重復上文中JSC方式的第二步,在Build Sytem添加以下內容:保存為NodeJS.sublime-build

  • {

  • "cmd": ["node", "$file"],

  • "selector": "source.js" }


  • 按照如上方式操作後,你可能會發現自己怎麼不OK呢?!可能自己就是那不幸運的一部分,如果你沒有成功也不用著急,可以參考以下方式,接著來Do it!
    在終端運行:which node
    獲取路徑如下:/usr/local/bin/node
    重新配置如下:

  • {

  • "cmd": ["/usr/local/bin/node", "$file"],

  • "selector": "source.js" }


  • step 3:

    測試輸出效果:

  • var temp = {name:'lili',age:24};

  • for (var i = 2; i >= 0; i--) {

  • console.log("Sublime Test3:"+i);//在NodeJS下沒有debug()函數 }

  • console.log(temp);

  • // 輸出 // Sublime Test3:2 // Sublime Test3:1 // Sublime Test3:0 // { name: 'lili', age: 24 }

  • 安裝Package Control

    如果需要使用Sublime Test安裝插件,可以訪問這個網站ol.io/installation,按照說明安裝Package Control。重啟sublime text,在package control Install中搜索這個插件並下載。也就是說這個插件可以在sublime中直接搜索下載。



I. pacman的圖形前端

pacman的官方並沒有發布有圖形界面的前端,其他的開發者發布了可用的pacmanGUI圖形前端。
PacmanXG4 — 是一個 pacman 的 GUI 前端。
不依賴於 GTK 或者 Qt,僅僅依賴 X11。它可以完成以下功能:
安裝/移除/升級軟體包
搜索/過濾軟體包
獲取軟體包信息,包括截圖
降級軟體包 (需要 AUR/downgrade 工具)
刷新包資料庫,同步鏡像
一鍵式系統升級
Find out which package a specific file belongs to (include file with pkgfile utility)
YAOURT 支持

J. 如何打造一個令人愉悅的前端開發環境

使用到的工具:
NodeJs (組件管理)
GIT (代碼管理)
browserify (模塊化)
Sass (CSS預編譯工具)
Grunt (自動化工具)
在文件夾下新建3個空文件夾
build,src,test

環境初始化(其實就是生成一個package.json)
npm init

2.安裝Grunt
npm install grunt --save-dev

新建Gruntfile.js
mole.exports = function(grunt) {

// Project configuration.,項目配置,組件配置
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),

});

// Load the plugin that provides the "uglify" task.
// grunt.loadNpmTasks('grunt-contrib-uglify');

// Default task(s).
//定義動作
grunt.registerTask('default', []);

};

4.執行grunt,是否出行done,則grunt配置完成
5.grunt常用插件
contrib- 前綴是grunt官方團隊提供的插件,否知是第三方
Contrib-jshint——javascript語法錯誤檢查;
Contrib-watch——實時監控文件變化、調用相應的任務重新執行;
Contrib-clean——清空文件、文件夾;
Contrib-uglify——壓縮javascript代碼
Contrib-——復制文件、文件夾
Contrib-concat——合並多個文件的代碼到一個文件中
karma——前端自動化測試工具
6.使用uglify插件
npm install grunt-contrib-uglify --save-dev

修改Gruntfile.js文件

// Project configuration.,項目配置,組件配置
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
uglify: {
options: {
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
},
build: {
src: 'src/*.js',
dest: 'build/<%= pkg.name %>.min.js'
}
}
});
grunt.loadNpmTasks('grunt-contrib-uglify);
grunt.registerTask('default', ['uglify']);

執行grunt,自動啟用uglify插件
實驗,在src下新建test.js
運行grunt,查看是否生成壓縮後的文件
8.使用watch,監聽變化,實現自動化
安裝
npm install grunt-contrib-watch --save-dev
配置
watch:{
build:{
files:['src/*.js','src/*.css'],
tasks:['uglify'],//發生變化執行uglify
options:{spawn:false}
}
}
載入
grunt.loadNpmTasks('grunt-contrib-watch');
執行
grunt.registerTask('default', ['uglify','watch']);

9.執行grunt,現在去修改test.js,會執行設定好的動作,control+c停止。
10.最終的Gruntfile.js
mole.exports = function(grunt) {

// Project configuration.,項目配置,組件配置
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
uglify: {
options: {
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
},
build: {
src: 'src/*.js',
dest: 'build/<%= pkg.name %>.min.js'
}
},
watch:{
build:{
files:['src/*.js','src/*.css'],
tasks:['uglify'],//發生變化執行uglify
options:{spawn:false}
}
}
});

// Load the plugin that provides the "uglify" task.
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch');

// Default task(s).
//定義動作
grunt.registerTask('default', ['uglify','watch']);

};

11.最終的package.json文件
{
"name": "html5",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"grunt": "^1.0.1",
"grunt-contrib-uglify": "^1.0.1",
"grunt-contrib-watch": "^1.0.0"
}
}

12.環境快速搭建
安裝好nodejs
復制package.js Gruntfile.js
新建文件夾 src,test,build
執行 npm install
執行 grunt
我沒有測試過,應該是可以的