2015-10-15 26 views
7

Làm cách nào để biên dịch mã của tôi với webpack và babel để chức năng được xuất có sẵn trong phạm vi toàn cục.Cách hiển thị hàm xuất khẩu thành phạm vi toàn cầu với babel và webpack

Vì vậy, ví dụ:

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

Nên có sẵn dưới window.test().

Khi tôi chỉ cần chạy babel -d tôi nhận được những gì tôi mong đợi:

'use strict'; 

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

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

nhưng sản lượng webpack trông như thế này:

!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 
}]); 

chấm dứt test chức năng không có sẵn trong phạm vi toàn cầu.

+0

Mọi cập nhật về điều này? Tôi đã cố gắng học cách làm tương tự trong một thời gian. –

+0

Tôi đang cố gắng làm như vậy, chỉ tự động tạo cửa sổ/hình cầu. Expose-loader hoạt động, nhưng bị phá vỡ khi bạn cần để lộ một TON của globals – user1828780

Trả lời

0

check out: https://webpack.github.io/docs/library-and-externals.html#examples

Bằng cách đặt các thư viện tài sản đầu ra để bất cứ tên nào bạn muốn quấn globals của bạn sẽ cho phép bạn sau đó gọi: YourLibrary .test();

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

nhưng làm thế nào để chỉ export một hàm –

+0

trong ví dụ trên bạn có nghĩa là chỉ cần gọi 'YourLibrary()' như một hàm, tôi không chắc chắn nếu điều đó là có thể. Tuy nhiên, bạn có thể chỉ hiển thị/xuất một hàm duy nhất, ví dụ hàm xuất 'foo() {...' sau đó gọi 'YourLibrary.foo()' – glued

+1

có, nhưng tôi cần hàm gọi trong mô-đun khác được xuất trong 'Thư viện của bạn. foo() ' –

Các vấn đề liên quan