我正在使用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;
答案 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会自动用这个函数包装这些模块,没有任何东西在全球范围内泄露。