成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Omi原理-環(huán)境搭建

lncwwn / 3241人閱讀

摘要:相關(guān)依賴有和其余都是單元測試相關(guān)依賴注意,這里使用了。因?yàn)槭褂每蚣苤С趾褪褂檬菫榱嗽趩卧獪y試?yán)锩媸褂玫暮偷日Z法。腳本其中生成目錄的文件執(zhí)行單元測試編譯的編譯的在中,會根據(jù)去設(shè)置不同的入口文件。

環(huán)境搭建

Omi框架使用 Webpack + ES6 的方式去開發(fā);使用karma+jasmine來作為Omi的測試工具。

Karma介紹

Karma是一個(gè)基于Node.js的JavaScript測試執(zhí)行過程管理工具(Test Runner)。該工具可用于測試所有主流Web瀏覽器,也可集成到CI(Continuous integration)工具,也可和其他代碼編輯器一起使用。這個(gè)測試工具的一個(gè)強(qiáng)大特性就是,它可以監(jiān)控(Watch)文件的變化,然后自行執(zhí)行。但是集成到travis ci要把singleRun設(shè)置成true,讓其只執(zhí)行一遍。

Jasmine介紹

Jasmine 是一款 JavaScript BDD(行為驅(qū)動開發(fā))測試框架,它不依賴于其他任何 JavaScript 組件。它有干凈清晰的語法,讓您可以很簡單的寫出測試代碼。

開發(fā)依賴包

在package.json中,有如下配置:

  "devDependencies": {
    "babel-core": "^6.0.20",
    "babel-loader": "^6.0.1",
    "babel-preset-es2015": "^6.0.15",
    "node-libs-browser": "^0.5.3",
    "webpack": "^1.14.0",
    "jasmine-core": "^2.5.2",
    "karma": "^1.3.0",
    "karma-chrome-launcher": "^2.0.0",
    "karma-jasmine": "^1.1.0",
    "karma-webpack": "^1.8.1"
  }

ES6+相關(guān)依賴有babel-core、babel-loader和babel-preset-es2015

在webpack.config.js中配置js文件使用babel-loader編譯。

loaders: [
    {
        loader: "babel-loader",
        test: /.js$/,
        query: {
            presets: "es2015",
        }
    }
]

webpack相關(guān)依賴有node-libs-browser和webpack

其余都是單元測試相關(guān)依賴

    注意,這里使用了karma-webpack。因?yàn)槭褂肙mi框架支持ES6+和ES5,使用karma-webpack是為了在單元測試?yán)锩媸褂肊S6+的import和Class等語法。

在karma.conf.js中配置webpack:

    webpack: webpackConfig,
    webpackMiddleware:{
      noInfo:false
    },
    plugins: [
        "karma-webpack",
        "karma-jasmine",
        "karma-chrome-launcher"
    ]

具體配置看test目錄下的karma.conf.js和webpack.test.config.js便可。

注意,karma.conf.js需要設(shè)置

// if true, Karma captures browsers, runs the tests and exits
singleRun: true,

不然,travis ci腳本執(zhí)行的時(shí)候不會中斷導(dǎo)致執(zhí)行超時(shí)異常。

npm 腳本
  "scripts": {
    "build": "webpack -w",
    "test": "karma start test/karma.conf.js",
    "hello": "webpack -w",
    "todo": "webpack -w"
  }

其中:

npm run build : 生成dist目錄的omi.js文件

npm run test : 執(zhí)行單元測試

npm run hello : 編譯hello的demo

npm run todo : 編譯todo的demo

在webpack.config.js中,會根據(jù) process.env.npm_lifecycle_event去設(shè)置不同的入口文件。所以同樣是執(zhí)行webpack -w,執(zhí)行結(jié)果可以不一樣。

來看下build的相關(guān)webpack配置:

if(ENV === "build"){
    config = {
        entry: {
            omi: "./src/index.js"
        },
        output: {
            path: "dist/",
            library:"Omi",
            libraryTarget: "umd",
            filename:  "[name].js"
        },

這里把libraryTarget設(shè)置成了umd,webpack會幫助我們build出umd的Omi。

如果是打包demo(npm run hello 和 npm run todo)的話,會進(jìn)入下面的條件判斷:

else {
    config.entry = "./example/" + ENV + "/main.js";
    config.output.path = "./example/" + ENV + "/";
}

會去example下對應(yīng)的目錄查找main.js作為webpack入口文件。

這里可以看到,我們不僅用webpack build出Omi框架,也使用webpack build所有demo。
詳細(xì)配置參考webpack.config.js的配置。

參考文檔

http://www.cnblogs.com/cqhaibin/p/5867125.html

https://karma-runner.github.io/latest/intro/installation.html

https://karma-runner.github.io/latest/intro/configuration.html

招募計(jì)劃

Omi的Github地址https://github.com/AlloyTeam/omi

如果想體驗(yàn)一下Omi框架,請點(diǎn)擊Omi Playground

如果想使用Omi框架,請閱讀 Omi使用文檔

如果想一起開發(fā)完善Omi框架,有更好的解決方案或者思路,請閱讀 從零一步步打造web組件化框架Omi

關(guān)于上面的兩類文檔,如果你想獲得更佳的閱讀體驗(yàn),可以訪問Docs Website

如果你懶得搭建項(xiàng)目腳手架,可以試試Scaffolding for Omi,npm安裝omis便可

如果你有Omi相關(guān)的問題可以New issue

如果想更加方便的交流關(guān)于Omi的一切可以加入QQ的Omi交流群(256426170)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/81447.html

相關(guān)文章

  • Omi原理-Hello Omi

    摘要:注意,這里目前沒有引入,不管第幾次渲染都是無腦設(shè)置,復(fù)雜結(jié)構(gòu)對瀏覽器的開銷很大,這里后續(xù)會引入。整合這里把給直接暴露在下,因?yàn)槊總€(gè)組件都生成了唯一的,后續(xù)實(shí)現(xiàn)事件作用域以及對象實(shí)例獲取都要通過下的獲取。 Hello Omi Omi框架的每個(gè)組件都繼承自O(shè)mi.Component,本篇會去完成Omi的Component的基本錐形,讓其能夠渲染第一個(gè)組件。 omi.js實(shí)現(xiàn) var Omi...

    王巖威 評論0 收藏0
  • 2017年試試Web組件化框架Omi

    摘要:不用擔(dān)心組件的會污染組件外的會幫你處理好一切更自由的更新,每個(gè)組件都有方法,自由選擇時(shí)機(jī)進(jìn)行更新。通過安裝點(diǎn)擊這里在線試試你可以使用來生成組件標(biāo)簽用于嵌套。點(diǎn)擊這里試試寫程序加入吧 Omi Open and modern framework for building user interfaces. Omi的Github地址https://github.com/AlloyTeam/o...

    JowayYoung 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<