【发布时间】:2018-01-04 15:44:37
【问题描述】:
当尝试访问我在 webpack 中使用 module.exports 的文件中创建的 util.js 模块时,它会在构建时生成一个空对象。在下图中,我的const utils = require(...) 返回一个空对象。
但是,当我在我的主脚本 background-script.js 中检查我的 const utils = require(...) 时,它不使用 module.exports,它已被定义。
问题
Webpack 似乎没有解决我正在使用的模块中的require 的问题。
项目文件结构
app
├──plugins
│ ├── index.js (exports all my plugins)
| ├──plugin1
| │ ├── index.js (simply exports an object)
| |
| |──plugin2
| ├── index.js (simply exports an object)
|
|--utils.js
|--background-script.js
app/background-script.js
const utils = require('../../util.js');
app/utils.js
const utils ={....};
utils.plugins = require('./plugins/index.js');
module.exports = utils;
plugins/index.js
//require all `index.js` file from each plugin directory; works great.
const context = require.context('.', true, /index\.js/);
const requireAllPlugins = function(ctx) {
const keys = ctx.keys();
const values = keys.map(ctx);
return values;
}
const allPlugins = requireAllPlugins(context);
module.exports = [...allPlugins];
plugin1/index.js
//utils is an empty object
const utils = require('../../util.js');
module.exports = {action: utils.renderBookmark}
【问题讨论】:
-
你试过
'../../../util.js'吗? -
这行不通,也不应该这样做,因为这会使我离开我的应用程序文件夹。今天晚些时候,我将研究 webpack 的
resolve属性和output.library属性。我会回来的
标签: javascript webpack commonjs webpack-3