无法导出 JS 模块

Cannot Export JS Module

我在 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

尝试:

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;  

您似乎是在服务器端导出。要使用 export 关键字,您需要使用 babel 进行转译。您可以参考此 https://babeljs.io/setup#installation 了解如何设置它

客户端可以用webpack来设置,也需要babel transpile

npm install --save-dev babel-core
npm install @babel/preset-env --save-dev

这在 nodejs 中运行良好,如果您使用的是浏览器脚本,则需要 <script type="module"> 才能使用 export 关键字(es 模块)或仅使用 babel

转译您的代码