我在utilities.js
文件中有一个称为实用程序的模块。我将其用于一些基本的js函数,并且想从全局名称空间中隐藏该模块。我知道要执行此操作,我应该创建一个模块,将其导出,将其导入所需的文件中,然后调用其功能。但是,我似乎无法正确导出模块。我认为这非常简单,但是我尝试过的所有操作都给出了错误。这是我的代码:
var utilities = (function(){
return {
debounce: function(func, wait, immediate){
var timeout;
return function() {
var context = this, args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
}
}
})();
export { utilities };
我的错误:
application.js:12560 Uncaught SyntaxError: Unexpected token export
答案 0 :(得分:1)
尝试:
const utilities = function() {
return {
debounce: function(func, wait, immediate){
var timeout;
return function() {
var context = this, args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
}
}
}
export default utilities;
或
function utilities() {
return {
debounce: function(func, wait, immediate){
var timeout;
return function() {
var context = this, args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
}
}
}
module.exports.utilities= utilities;
答案 1 :(得分:0)
似乎您正在服务器端进行导出。要使用export关键字,您需要使用babel进行转换。您可以参考此https://babeljs.io/setup#installation来学习如何设置
对于客户端,您可以使用webpack进行设置,例如,它也需要babel transpile
SELECT
答案 2 :(得分:0)
这在nodejs中很好用,如果您使用的是浏览器脚本,则需要<script type="module">
使用export
关键字(es模块)或仅使用babel转换代码