我已经实现了汇总,我将其用作JavaScript模块捆绑器来构建UI库,以便在应用程序中使用。
在导入特定库时,某些库将引发未定义的错误。
例如,调用import 'enquire.js';
将引发:Uncaught ReferenceError: enquire is not defined
。
大多数插件都可以正常工作,例如bootstrap既不会引起问题,也不会导致许多其他插件出现问题,但是问题出在少数几个库中,我怀疑它归结为一个根本原因,导致我无法解决问题周围。
请注意,我正在使用两个插件:节点解析器和commonjs。这些插件将解析我的node_modules文件夹中的软件包,并将commonjs模块转换为对汇总包使用es6语法
下面是我的具有汇总任务的 grunt配置文件:
grunt.initConfig({
rollup: {
options: {
format: 'iife',
plugins: function () {
return [
babel({
exclude: './node_modules/**',
}),
nodeResolve(),
commonJS({
include: './node_modules/**'
}),
];
},
},
website: {
dest: 'build/main-min.js',
src: 'src/main.js',
}
}
})
下面是我的 main.js输入文件:
import './global/jquery.js';
import 'bootstrap';
import 'enquire.js';
// other external dependencies
下面是我如何使用enquire.js:
enquire.register("screen and (max-width:45em)", {
match : function() {},
unmatch : function() {},
setup : function() {},
deferSetup : true,
destroy : function() {}
});
以下是控制台错误:
Uncaught ReferenceError: enquire is not defined