requirejs example

requirejsjavascript的套件管理library ,使用於管理套件的相依性,其中載入方式有非同步同步兩種方式。

以下是一個簡單的範例:

<!--file:index.html-->
<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <script data-main="js/main" src="http://requirejs.org/docs/release/1.0.7/minified/require.js"></script> 
</body>
</html>

requirejs被載入的時候,會去讀取data-main的值,並且載入這隻script(js/main.js)。

//file:js/main.js
(function(){

    require.config({
        baseUrl:"js",
        paths:{
            order:"libs/order"
        }   
    }); 

    //require( dependencies ,callback )
    //dependencies是載入的相關套件,參數為string array
    //當載入完畢會呼叫此function,callback為function
    //先載入完js/config.js,才會載入js/module2.js
    require(["order!config","order!module2"],function( config, module2 ){
        console.log( "loaded " + module2.name );
        console.log( "version : " + config.version );
    }); 

}).call( this );
**require.config**可以配置一些設定,**baseUrl**指的是**include script**的起始路徑,而**paths**可以設定名稱,會直接對照路徑,就不需打一長串了。
其中**require**的第一個參數,是載入相關的套件,加**order!**指的會依序往下執行,第二個參數則是,當載入完成後,會呼叫的**function**。
//file:js/config.js
define([],function(){
    return {
        version:"production"
    };  
});

define function的第一個參數與require function相同,都是用來載入相關package用,而第二個參數當載入完後,return的直將會傳給requirecallback function

//file:js/module1.js
define([],function(){
    return {
        name:"module1"
    };  
});
//file:js/module2.js
define(["module1"],function( module1 ){

    console.log("loaded " + module1.name);

    return {
        name:"module2"
    };  
});

js/lib/order.js是當載入需要同步時,需要使用到的requirejs plugin,其他plugin可參考官方。

當要將js壓縮和合併成同一隻時,可以執行以下指令,他會參考build.js,這個配置檔(需先裝node.js和requirejs):

./build.sh

github example

vim java自動補全(vim javacomplete)

這裡是使用vundle安裝,vundle是一個vim管理套件,安裝vundle

用vundle安裝javacomplete:

1.用vim打開.vimrc檔案。

2.按":"輸入BundlesSearch,左邊會開啟一個套件列表視窗。

3.接著按"/"收尋javacomplete,再按大寫"I"安裝。

4.在.vimrc中加入Bundle 'javacomplete',就安裝成功了。

5.同樣的在.vimrc加入以下幾行。

"設定此行在java檔案中,就可按(ctrl + x) + (ctrl + o) 自動補全
setlocal omnifunc=javacomplete#Complete

"當檔案為java和insert mode的狀態下,按"."會替換成以下指令,換言之,與ide相同當按"."會自動補全
"ex:System.  <=將會出現out等字
autocmd FileType java inoremap <buffer> . .<C-X><C-O><C-P>

"設定額外include的classpath
let b:classpath="~/jarFile/*"

(設定及安裝可參考:~/.vim/bundle/javacomplete/doc/javacomplete.txt