小编JR *_*hak的帖子

如何阻止babel将'this'转换为'undefined'(并插入"use strict")

编辑:这不是胖箭.这也是不是通过一个IIFE.这是一个与转换器相关的问题.

所以我为一个我正在研究的小应用程序创建了一个简单的pub-sub.我在ES6中编写它以使用传播/休息并省去一些麻烦.我用npm和gulp进行设置来解决这个问题,但这让我发疯了.

我把它变成了一个浏览器库,但意识到它可以在任何地方使用,所以我决定让它与Commonjs和AMD兼容.

这是我的代码的精简版:

(function(root, factory) {
 if(typeof define === 'function' && define.amd) {
    define([], function() {
        return (root.simplePubSub = factory())
    });
  } else if(typeof module === 'object' && module.exports) {
    module.exports = (root.simplePubSub = factory())
  } else {
    root.simplePubSub = root.SPS = factory()
  }
}(this, function() {
 // return SimplePubSub
});
Run Code Online (Sandbox Code Playgroud)

但是,不管我什么(如使这个变量和传递),将其设置到未定义.

}(undefined, function() {
Run Code Online (Sandbox Code Playgroud)

它可能与Babel有什么关系,不知道将是什么,并将其转移,但是我还有其他方法吗?

更新:通过}((window || module || {}), function() {而不是 …

javascript amd commonjs node.js babeljs

49
推荐指数
1
解决办法
1万
查看次数

标签 统计

amd ×1

babeljs ×1

commonjs ×1

javascript ×1

node.js ×1