Webpack外部需要具有复杂名称的模块

时间:2016-07-29 13:37:51

标签: angularjs requirejs webpack

我正在开发一个集成到更大版本的Angular应用程序。我们使用RequireJs并且我正在迁移到Webpack。我的代码依赖于外部requirejs模块,格式为:

var x = require('foo/foo/bar');

编辑:模块实际上是位于serverRoot / foo / foo / bar.js中的脚本。

在我的webpack.config.js中,我告诉webpack不要打扰那个模块,因为它是从外部提供的:

externals: {
    'foo/foo/bar': 'foo/foo/bar'
}

这将通过webpack生成以下代码:

/* 15 */
/***/ function(module, exports) {

    module.exports = foo/foo/bar;

/***/ },

这显然会引发错误。

那么......我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:0)

外部库或目标应该向全局上下文公开var,例如,使用外部jquery库:

externals: {
    // require("jquery") is external and available
    // on the global var jQuery
    "jquery": "jQuery"
}

所以在你的情况下,如果require('foo/foo/bar')会公开globalFoo变量,你可以设置外部:

externals: {
    "globalFoo": "foo/foo/bar"
}