_webpack_require返回一个空模块对象

时间:2016-11-22 08:08:04

标签: webpack

我正在使用webpack 1.13.3。

_webpack_require返回一个空模块对象。 预期的结果是' a.js'模块对象..

源代码:

a.js

require.ensure([], function() {

  var module = {};

  module.init = function() {
    console.log('a');
  };

  return module;
})

entry.js

require([], function() {
  console.log(require('./a'))
  require('./a').init();
})

的index.html

<script type="text/javascript" charset="utf-8" src="./main.js">
</script>

webpack.config.js

module.exports = {
  entry: './entry.js',
  output: {
    filename: '[name].js'
  }
}

使用webpack.config.js构建并使用浏览器打开index.html。 然后出现错误。

console.log(require(&#39; ./ a&#39;))此代码只记录空对象&#39; {}&#39;

1 个答案:

答案 0 :(得分:2)

我认为您正在尝试将AMD模块与webpack一起使用,但是使用CommonJS模块样式会好得多。这就是webpack的构建,非常简单,工作得很漂亮!

请尝试以下方法:

a.js

module.exports = {}; // module.exports is what will be returned if you require() this file.

module.exports.init = function() {
  console.log('a');
}

// OR

module.exports = {
  init: function() { 
    console.log('a');
  },
};

entry.js

require('./a').init();

您的webpack配置和HTML不需要更改。

正如你所看到的,简单得多! Webpack会自动用这个函数包装这些模块,没有任何东西在全球范围内泄露。