騰訊AlloyTeam正式釋出omi-cli腳手架
omi-cli
使用者指南
檔案目錄
執行完omi init my-app
,你可以看到會生成如下的基礎目錄結構
my-app/
config
project.js
config.js
src/
component
css
img
js
libs
page
index
page-b
favicon.ico
- config裡的檔案是webpack打包配置以及cdn、webserver,埠、route配置
- src目錄是我們的專案邏輯程式碼目錄
npm 指令碼
npm start
當你執行 npm start
npm run dist
當你執行 npm run dist
之後,會建立一個dist目錄,所有要釋出的檔案都在裡面:
my-app/
dist/
chunk
component
css
img
js
libs
favicon.ico
index.html
page-b.html
component會保留其依賴的某些資原始檔,chunk會輸出分割出來的模板,怎麼分割請往下看。
程式碼分割
為了優化效能,使用者不需要一次性載入所有網頁的依賴,可以在需要使用的時候再進行載入,所以這部分可以進行分割成單獨的模組。
如下面的a.js:
import logo from '../../img/omi.png'
module.exports = { src: logo }
通過require.ensure進行按需使用,在使用者點選事件觸發之後才會進行載入a.js以及a.js的所有依賴,如下面程式碼所示:
class Hello extends Omi.Component { constructor(data, option){ super(data, option) } handleClick(){ require.ensure(['./a.js'], function() { var a = require("./a.js") document.body.innerHTML+=`<img src="${a.src}">` }) } render() { return ` <div class="App"> <div class="App-header"> <img src='${logo}' onclick="handleClick" class="App-logo" alt="logo" /> <h2>Welcome to Omi</h2> </div> <p class="App-intro"> To get started, edit <code>src/component/hello.js</code> and save to reload. </p> <p class="App-intro"> {{name}} </p> </div> ` } }
上面是老的方式,webpack2更加建議使用一種"類函式式(function-like)"的 import() 模組載入語法。如:
import("./a.js").then(function(moduleA) {
console.log(moduleA);
document.body.innerHTML+=`<img src="${moduleA.src}">`
});
相容 IE8
Omi框架是可以相容IE8的。
由於使用了webpack-hot-middleware
, 開發過程不相容IE8,但是沒關係,npm run dist
生成的釋出程式碼是相容IE8。
需要主要的是,你需要在你的HTML裡引用es5-sham或者es5-shim。如:
<!--[if lt IE 9]>
<script type="text/javascript" crossorigin="anonymous" src="//s.url.cn/qqun/xiaoqu/buluo/p/js/es5-sham-es5-sham.min.77c4325f.js"></script>
<![endif]-->
插入 CSS
通過import可以在js依賴相關的css檔案,
import './index.css'
index.css會被提取到CSS檔案當中,插入到head裡面。
插入元件區域性 CSS
import './index.css'
class Hello extends Omi.Component {
constructor(data, option){
super(data, option)
}
style(){
return require('./_hello.css')
}
...
...
}
Omi框架的style方法返回的字串會生成為元件的區域性CSS,_hello.css
檔案會在執行時動態插入到head裡面。
需要特別注意的是: 元件的區域性CSS必須使用下劃線開頭,如_xxx.css
,_aaa-bbb.css
,不然會被識別成全域性CSS插入到head裡。
區域性CSS使用圖片
當然不是必須require外部的css檔案,也可以直接寫在style方法內,元件的依賴的圖片資源也在元件的目錄內:
my-app/
src/
component
hello
index.js
pen.png
pencil.png
對應的index.js如下所示:
class Hello extends Omi.Component {
constructor(data, option){
super(data, option)
}
style(){
return `
.icon-pen {
background-image: url(${require('./pen.png')});
}
.icon-pencil {
background-image: url(${require('./pencil.png')});
}
`
}
...
...
}
插入 Less
通過import可以在js依賴相關的css檔案,
import './xxx.less'
xxx.less會在轉換成CSS,並且被提取到CSS檔案當中,插入到head裡面。
插入元件區域性 Less
class Intro extends Omi.Component {
constructor(data, option){
super(data, option)
}
style(){
return require('./_index.less')
}
render() {
return `
<p class="app-intro">
To get started, edit <code>src/component/hello.js</code> and save to reload.
</p>
`
}
}
export default Intro
Omi框架的style方法返回的字串會生成為元件的區域性CSS,_index.css
檔案會在執行時動態插入到head裡面。
需要特別注意的是: 元件的區域性Less必須使用下劃線開頭,如_xxx.css
,_aaa-bbb.css
,不然會被識別成全域性CSS插入到head裡。
匯入元件
如上面一節定義了Intro
元件,利用複用。那麼怎麼在其他元件中使用?
import Intro from '../intro/index.js'
Omi.tag('intro',Intro)
class XXX extends Omi.Component {
constructor(data, option){
super(data, option)
}
render() {
return `
<div>
<div>Hello Omi!</div>
<intro></intro>
</div>
`
}
}
export default XXX
通過Omi.tag('intro',Intro)
把元件Intro生成為可以宣告式的標籤。注意便籤名字要使用小寫,多個單詞使用中劃線,如:my-intro
、app-header
等。
匯入圖片、字型、SVG 等檔案
如上面的例子:
import logo from './logo.svg'
logo.svg會被動態轉成base64。我們可以為每種型別都對應webpack裡的一個loader來處理所有的檔案型別。
修改配置
開啟 config.js
,其位置如下:
my-app/
config
project.js
**config.js**
開啟之後可以看到
module.exports = {
"webserver": "//localhost:9000/",
"cdn": "",
"port": "9000",
"route": "/news/",
};
修改 CDN 地址
module.exports = {
"webserver": "//localhost:9000/",
"cdn": "//s.url.cn/",
"port": "9000",
"route": "/news/",
};
修改 webserver 和 port
module.exports = {
"webserver": "//localhost:9000/",
"cdn": "//s.url.cn/",
"port": "9001",
"route": "/news/",
};
修改 route
module.exports = {
"webserver": "//localhost:9001/",
"cdn": "//s.url.cn/",
"port": "9001",
"route": "/user/",
};
Github
相關推薦
騰訊AlloyTeam正式釋出omi-cli腳手架
omi-cli 使用者指南 檔案目錄 執行完omi init my-app,你可以看到會生成如下的基礎目錄結構 my-app/ config project.js config.js src/ component css img js lib
騰訊AlloyTeam正式釋出pasition
pasition Pasition - Path Transition with little JS code, render to anywhere - 超小尺寸的Path過渡動畫類庫 最近和貝塞爾曲線槓上了,如curvejs 和 pasition 都是貝塞爾曲線的應用案例,未來還有一款和貝塞爾曲線相
騰訊AlloyTeam正式釋出Canvas魔幻線條
寫在前面 curvejs 中文讀["克js"],是騰訊AlloyTeam打造的一款魔幻線條框架,讓線條成為一名優秀的舞者,讓線條們成為優秀的舞團,HTML5 Canvas就是舞臺。 你還記得window經典的螢幕保護程式《變幻線》嗎? 其原理就是使用 Perlin-Noise + Particle
遠離服務器宕機,騰訊WeTest正式推出服務器深度性能測試服務
容量 工具 系統性能 微博 閾值 進行 業務場景 tro 選擇 WeTest 導讀 隨著城市發展趨向智慧化,不僅移動互聯網應用正迅速融入出行、金融、醫療、娛樂等傳統行業,跟隨移動互聯網成長起來的,還有用戶對應用使用與消費的理性意識。 而在用戶不斷增加的同時,如何避免移動
遠離伺服器宕機,騰訊WeTest正式推出伺服器深度效能測試服務
WeTest 導讀 隨著城市發展趨向智慧化,不僅移動網際網路應用正迅速融入出行、金融、醫療、娛樂等傳統行業,跟隨移動網際網路成長起來的,還有使用者對應用使用與消費的理性意識。 而在使用者不斷增加的同時,如何避免移動應用延遲、閃斷、宕機等隱患給開發者們來了首當其衝的挑戰。放眼國內外,每一年都會出現伺服器宕機熱
騰訊AlloyTeam面經
前段時間受了學長的慫恿,去給AlloyTeam投了簡歷。剛巧趕上覆習GRE,沒怎麼來得及複習…… 疏於準備所付出的代價啊……一首涼涼夜色送給自己 引子 其實AlloyTeam主要是進行視訊或者電話面試的,這次剛好是Weber潘佳韓來我們學校做招聘宣講,
你不容錯過的 騰訊 AlloyTeam Web 前端大會 看點完全剖析
AC大會 ( Alloyteam Conf ),是由騰訊前端技術團隊的標杆團隊 AlloyTeam 發起的前端技術大會,旨在分享團隊在技術研究、產品研發、開源專案的經驗沉澱。AC2017 將會繼續在工程化、圖形處理、Web動畫、效能優化等方面呈獻團隊一年多以來的實踐,還將邀請幾個業內專家來快速分享他們的寶貴
Web前端規範文件-騰訊AlloyTeam
CSS 語法 使用四個空格的 soft tabs — 這是保證程式碼在各種環境下顯示一致的唯一方式。 使用組合選擇器時,保持每個獨立的選擇器佔用一行。 為了程式碼的易讀性,在每個宣告的左括號前增加一個空格。 宣告塊的右括號應該另起一行。 每條宣告 :
『實踐』騰訊雲伺服器釋出專案
1.申請騰訊雲伺服器 2.安裝jdk jdk安裝,環境配置這個百度下就有了,這裡就不闡述了。 3.Tomcat安裝版 見下面圖中紅色框內: 4.Myeclipse將專案釋出為war包 右鍵專案,選擇匯出(export)-》選擇war檔案 5.將匯出的war
使用qq騰訊雲伺服器釋出專案的步驟。
研究了好久,終於把自己的專案作業扔上去買下的雲伺服器了。整理好做個筆記以後免得不記得,分享一下。 步驟如下: (2)通過一系列的認證稽核,找好自己的雲伺服器,根據自己的需求完成下邊一系列雲伺服
【開源】騰訊 Omi-chart 正式釋出
v1.0.1 omi-chart 一個 chart-x 標籤搞定資料視覺化, omi 和 chart.js強力加持 支援的圖表 <chart-bar /> 柱狀圖 <chart-line /> 線圖 <chart-scatter
騰訊釋出新版前端元件框架 Omi,全面擁抱 Web Components
Omi - 合一 下一代 Web 框架,去萬物糟粕,合精華為一 → https://github.com/Tencent/omi 特性 4KB 的程式碼尺寸,比小更小 順勢而為,順從瀏覽器的發展和 API 設計 Webcomponents + JSX 相互融合為一個框架 O
騰訊 Omi 5.0 釋出 - Web 前端 MVVM 王者歸來
寫在前面 騰訊 Omi 框架正式釋出 5.0,依然專注於 View,但是對 MVVM 架構更加友好的整合,徹底分離檢視與業務邏輯的架構。 你可以通過 omi-cli 快速體驗 MVVM: $ npm i omi-cli -g $ omi init-mv
騰訊 Omi 5.0 釋出 - Web 前端 MVVM 王者歸來,mappingjs 強力加持
寫在前面 騰訊 Omi 框架正式釋出 5.0,依然專注於 View,但是對 MVVM 架構更加友好的整合,徹底分離檢視與業務邏輯的架構。 你可以通過 omi-cli 快速體驗 MVVM: $ npm i omi-cli -g $ omi init-mvvm my-app $
Omi 5.0.5 釋出,騰訊開源的下一代 Web 框架
Omi 5.0.5 已釋出,更新內容如下: [Fix] fix host [Add] supports defineElement for amd env, it's the same as define Omi 是騰訊開源的下一代 Web 框架,去萬物糟粕,合精
【開源】騰訊 omi-mp-create 釋出 - 極小卻精巧的小程式框架
【開源】騰訊 omi-mp-create 釋出 極小卻精巧的小程式框架,對小程式入侵性幾乎為零 → Github omi-mp-create 和 omio 一樣,使用了 omi packages 裡的 obaa 監聽資料變化自動更新檢視。和早期釋出的 westore 對比的話,
騰訊正式釋出《區塊鏈方案白皮書》5大行業應用即將全面爆發
關注ITValue,檢視企業級市場最新鮮、最具價值的報道!日前,騰訊正式釋出了區塊鏈方案白皮書,
騰訊正式加入AI戰團,小微首款應用曝光!
騰訊小q機器人第二代6月21日-22日,騰訊雲+未來峰會在深圳盛大召開。會上,騰訊雲首次發布“AI即服務”戰略新品“智能雲”,將騰訊在計算機視覺、自然語言處理、語音識別等領域的三大核心AI能力開放給更多企業和機構。騰訊雲將開放騰訊的計算機視覺、智能語音識別、自然語言處理三大核心能力。截至目前,騰訊雲圍繞這三大
騰訊正式加入OCP陣營,擁抱全球開源生態圈
term min rgb 基金 關於 linu 1.7 wid ado 近日,騰訊正式加入OCP開放計算項目。後續,騰訊將加強與社區成員在數據中心、網絡、服務器等方面的技術交流和聯動,推動基礎設施的跨企業開發以及軟硬件前沿技術的普及。OCP是開源計算項目Open Compu
騰訊正式開源高效能的圖片框架 LKImageKit
開源最前線 猿妹編譯 素材來自:騰訊開源、GitHub等 近日,騰訊又有新的開源專案啦,高效能的圖片框架 LKImageKit 正式開源 圖片框架 LKImageKit 授權協議:BSD 開發語言:Objective-C 作