亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

lncwwn / 3323人閱讀

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

環(huán)境搭建

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

Karma介紹

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

Jasmine介紹

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

開(kāi)發(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

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

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

在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í)候不會(huì)中斷導(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í)行單元測(cè)試

npm run hello : 編譯hello的demo

npm run todo : 編譯todo的demo

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

來(lái)看下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會(huì)幫助我們build出umd的Omi。

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

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

會(huì)去example下對(duì)應(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框架,請(qǐng)點(diǎn)擊Omi Playground

如果想使用Omi框架,請(qǐng)閱讀 Omi使用文檔

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

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

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

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/81447.html

相關(guān)文章

  • Omi原理-Hello Omi

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

    王巖威 評(píng)論0 收藏0
  • 2017年試試Web組件化框架Omi

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

    JowayYoung 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<