Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ecmascript 6 ES6生成器函数导致错误:未捕获引用错误:未定义regeneratorRuntime_Ecmascript 6_Elixir_Phoenix Framework - Fatal编程技术网

Ecmascript 6 ES6生成器函数导致错误:未捕获引用错误:未定义regeneratorRuntime

Ecmascript 6 ES6生成器函数导致错误:未捕获引用错误:未定义regeneratorRuntime,ecmascript-6,elixir,phoenix-framework,Ecmascript 6,Elixir,Phoenix Framework,如果我把一个生成器函数 function* someWords() { yield "hello"; yield "world"; } for (var word of someWords()) { alert(word); } 在app.js中,代码生成一个未捕获的引用错误 如果我在app.html.eex中的脚本标记中运行相同的代码,则运行正常。app.html.eex中的代码将不会通过babel传递。如果您使用的浏览器支持生成器,那么它们将正常工作 由于您的app.js代码

如果我把一个生成器函数

function* someWords() {
  yield "hello";
  yield "world";
}

for (var word of someWords()) {
  alert(word);
}
在app.js中,代码生成一个未捕获的引用错误


如果我在app.html.eex中的脚本标记中运行相同的代码,则运行正常。

app.html.eex中的代码将不会通过babel传递。如果您使用的浏览器支持生成器,那么它们将正常工作

由于您的
app.js
代码是用babel传输的,因此您可能需要使用它才能使生成器工作


app.js

import "phoenix_html"
import "babel-polyfill"

function* someWords() {
  yield "hello";
  yield "world";
}

for (var word of someWords()) {
  alert(word);
}
exports.config = {
  files: {
    javascripts: {
      joinTo: "js/app.js"
    },
    stylesheets: {
      joinTo: "css/app.css"
    },
    templates: {
      joinTo: "js/app.js"
    }
  },

  conventions: {
    assets: /^(web\/static\/assets)/
  },

  paths: {
    watched: [
      "web/static",
      "test/static"
    ],

    public: "priv/static"
  },

  plugins: {
    babel: {
      // Do not use ES6 compiler in vendor code
      ignore: [/web\/static\/vendor/]
    }
  },

  modules: {
    autoRequire: {
      "js/app.js": ["web/static/js/app"]
    }
  },

  npm: {
    enabled: true,
    whitelist: ["phoenix", "phoenix_html", "babel-polyfill"]
  }
};
bunch_config.js

import "phoenix_html"
import "babel-polyfill"

function* someWords() {
  yield "hello";
  yield "world";
}

for (var word of someWords()) {
  alert(word);
}
exports.config = {
  files: {
    javascripts: {
      joinTo: "js/app.js"
    },
    stylesheets: {
      joinTo: "css/app.css"
    },
    templates: {
      joinTo: "js/app.js"
    }
  },

  conventions: {
    assets: /^(web\/static\/assets)/
  },

  paths: {
    watched: [
      "web/static",
      "test/static"
    ],

    public: "priv/static"
  },

  plugins: {
    babel: {
      // Do not use ES6 compiler in vendor code
      ignore: [/web\/static\/vendor/]
    }
  },

  modules: {
    autoRequire: {
      "js/app.js": ["web/static/js/app"]
    }
  },

  npm: {
    enabled: true,
    whitelist: ["phoenix", "phoenix_html", "babel-polyfill"]
  }
};
package.json

{
  "repository": {},
  "dependencies": {
    "babel-brunch": "^6.0.0",
    "babel-polyfill": "^6.3.14",
    "brunch": "^2.1.3",
    "clean-css-brunch": ">= 1.0 < 1.8",
    "css-brunch": ">= 1.0 < 1.8",
    "javascript-brunch": ">= 1.0 < 1.8",
    "phoenix": "file:deps/phoenix",
    "phoenix_html": "file:deps/phoenix_html",
    "uglify-js-brunch": ">= 1.0 < 1.8"
  }
}
{
“存储库”:{},
“依赖项”:{
“巴贝尔早午餐”:“^6.0.0”,
“巴别塔polyfill”:“^6.3.14”,
“早午餐”:“^2.1.3”,
“清洁css早午餐”:“>=1.0<1.8”,
“css早午餐”:“>=1.0<1.8”,
“javascript早午餐”:“>=1.0<1.8”,
“凤凰城”:“文件:deps/phoenix”,
“phoenix_html”:“文件:deps/phoenix_html”,
“uglify js早午餐”:“>=1.0<1.8”
}
}

我使用npm安装-S babel polyfill安装了polyfill,但现在我在web控制台中遇到一个新错误:未捕获引用错误:未定义全局。我把
导入“babel polyfill”在app.js中。您是否已将其添加到brunch config.js中的白名单中?我已尝试将路径“node_modules/babel polyfill”添加到路径中,但没有任何运气。我认为您只需要将“babel polyfill”添加到白名单中。我在npm部分添加了
白名单:[“babel polyfill”]
,但仍然得到相同的错误。当我点击它时,控制台会把我带到js,上面写着“if(global._babelPolyfill){抛出新错误(“只允许一个babel polyfill实例”);}”