webpack - 如何使用 babel 和 webpack 将导出的函数公开到全局范围内

标签 webpack babeljs

如何使用 webpack 和 babel 编译我的代码,以便导出的函数在全局范围内可用。

例如:

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

应该在 window.test() 下可用.

我刚跑的时候babel -d我得到了我的期望:
'use strict';

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

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

但 webpack 输出如下所示:
!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函数在全局范围内不可用。

最佳答案

您可以轻松地在全局 window 上设置属性。目的。这会将您的对象暴露给全局范围。

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

window.test = test;

如果您正在开发一段不代表库的代码,而只是在全局范围内操作的一些操作或功能,我更喜欢这种方法而不是设置已接受答案中提到的库输出属性。

关于webpack - 如何使用 babel 和 webpack 将导出的函数公开到全局范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33148787/

相关文章:

Webpack Uglify : Keep Certain console. 日志

javascript - 我无法在 webpack 中使用 Babel 的其余操作符

分配左侧的 Javascript 对象括号表示法 ({ Navigation } =)

node.js - 使用 babel-register `only` 选项

babeljs - Atom不断抛出babel-eslint错误

webpack - Vue + Webpack 构建显示空白页面

webpack - 在构建期间将静态文件添加到 HTML (Webpack)

javascript - React 和 es6 中更好的对象解构

javascript - 如何在javascript中配置babel7以支持 `import {}`从 `export default`

javascript - Expo SDK 44 升级错误 - App.js : [BABEL]: Unexpected token '.'