2015-10-15 21 views
7

Dışa aktarılan işlevin global kapsamda kullanılabilmesi için kodumu webpack ve babel ile nasıl derlerim? Örneğin bu şekildeDışa aktarılan bir işlevi babel ve webpack ile global kapsamda nasıl gösterir

:

export function test(){console.log('test')} 

window.test() altında kullanılabilir olmalı.

'use strict'; 

Object.defineProperty(exports, '__esModule', { 
    value: true 
}); 
exports.test = test; 

function test() { 
    console.log('test'); 
} 

ama webpack çıktı şuna benzer::

!function(e) { 
    function t(r) { 
    if (o[r])return o[r].exports; 
    var n = o[r] = {exports: {}, id: r, loaded: !1}; 
    return e[r].call(n.exports, n, n.exports, t), n.loaded = !0, n.exports 
    } 

    var o = {}; 
    return t.m = e, t.c = o, t.p = "", t(0) 
}([function(e, t) { 
    "use strict"; 
    function o() { 
    console.log("test") 
    } 

    Object.defineProperty(t, "__esModule", {value: !0}), t.test = o 
}]); 

test fonksiyon küresel kapsamda mevcut değildir sona

Sadece babel -d koşmak

ben beklediğiniz var.

+0

Bu konuda herhangi bir güncelleştirme var mı? Bir süredir aynı şeyi yapmayı öğrenmeye çalışıyorum. –

+0

Aynı şeyi yapmaya çalışıyorum, sadece dinamik olarak pencere/globals yarat. Expose-loader çalışır, ancak – user1828780

cevap

0

teslim alma: Eğer sarmak istedikleri ismi ile kütüphane çıkış özelliğini ayarlayarak https://webpack.github.io/docs/library-and-externals.html#examples

senin globaller sonra çağrısında bulunma izni verecek: YourLibrary .test();

module.exports = { 
    entry: ['./_js/script.js'], 
    output: { 
     library: 'YourLibrary', 
     path: __dirname, 
     filename: './build/script.js' 
    } 
+4

globals bir TON ortaya çıkarmak için ne zaman sadece aşağıya iner, ancak yukarıdaki örnekte sadece bir fonksiyon –

+0

dışa aktarmak istediğinizde sadece 'YourLibrary()' işlevini çağırmak demek, emin değilim bu mümkün. Bununla birlikte, sadece tek bir işlevi gösterebilir veya dışa aktarabilirsiniz, örneğin, 'foo() {...' işlevini dışa aktarabilir ve sonra 'YourLibrary.foo()' – glued

+1

numaralı telefonu arayabiliriz, fakat 'myLibrary'de dışa aktarılan diğer modüldeki çağrı işlevlerine ihtiyacım var. fan() ' –

İlgili konular