我尝试使用imports-loader导入带有webpack 2.2的reveal.js,但一直收到错误:
未捕获的TypeError:无法设置未定义的“property”属性
我尝试像这样导入它:require('imports-loader?this=>window!reveal.js');
这应该会将全局窗口变量注入为this。
导致错误的代码部分如下:
(function (root, factory) {
if (true) {
root.Reveal = factory();
}
})(undefined, function () {最后一行上的undefined将作为root参数传递给函数。
这段代码就是webpack导入reveal.js库的方式。由于某种原因,当将代码捆绑在一起时,webpack似乎是在用undefined替换this这个词。
怎样才能正确的导入这个库呢?我也尝试过脚本加载器,我得到了同样的错误。
发布于 2017-04-09 05:33:38
在webpack配置中:
rules: [
{ parser: { amd: false }}
]这将阻止webpack定义AMD定义变量,这就是reveal.js在其工厂包装器中触发该条件的原因。
在此之后,我还将通过以下方式导入reveal.js和head.js
import head from 'headjs/dist/1.0.0/head';
import Reveal from 'reveal.js/js/reveal';
// Reveal.initialize(https://stackoverflow.com/questions/42677862
复制相似问题