2016-10-07 19 views
1

我是UMD和AMD的新手。我在Browserify編寫了一個JS庫,我剛剛遇到了UMD。我的理解是,如果我爲每個模塊包含一段代碼,我的模塊應該可以在CommonJs和AMD中使用。如何將我的CommonJS模塊轉換爲UMD?

這是我的示例模塊。

./src/main.js

import Cookie from 'js-cookie'; // from npm install js-cookie 
import lib1 from './lib/lib1'; 

window.MyModule = function MyModule(options) { 
    let lib1; 
    function methodA() { 

    } 

    return { 
    methodA: methodA 
    }; 

    (function init() { 
    lib1 = lib1(); 
    // Some initialization code. 
    })(); 
}; 

module.exports = window.MyModule; 

./lib/lib1.js

module.exports = (options) => { 
    function func1() { 

    } 

    return { 
    func1: func1 
    }; 
} 

這就是我如何使用browserify

browserify src/main.js --outfile dist/main.js --debug 

而當一切收拾我只想用這個模塊。

<script src="//main.js"></script> 

我的問題是,如何將模塊轉換爲UMD,以便它可以包含在CommonJS和AMD中。

+0

有一個看看'--standalone'選項。 – cartant

回答

0

您可以使用deamdify,es6ifydeglobalify來做你正在做的事情。

npm install deamdify es6ify deglobalify 
browserify -t deamdify -t es6ify -t deglobalify main.js -o bundle.js 

來源:http://dontkry.com/posts/code/browserify-and-the-universal-module-definition.html

+0

我試圖把deamdify放入轉換中,但生成的文件與沒有它的文件相同。 – toy

+1

我以爲用deamdify做轉換隻是爲了模塊消耗AMD模塊? – toy