Questions tagged «babeljs»

Babel(以前称为6to5)是JavaScript编译器。它将ES6 + / ES2015代码转换为ES5代码。

10
使用Node.js require与ES6导入/导出
在我正在合作的项目中,关于可以使用哪种模块系统,我们有两个选择: 导入使用的模块require,并使用导出module.exports和exports.foo。 使用ES6导入模块import,并使用ES6导出export 一项使用另一项有什么性能上的好处?如果要在Node模块上使用ES6模块,还有其他什么应该知道的吗?

30
未定义Babel 6 regeneratorRuntime
我正在尝试使用异步,在Babel 6上从头开始等待,但是我得到的regeneratorRuntime尚未定义。 .babelrc文件 { "presets": [ "es2015", "stage-0" ] } package.json文件 "devDependencies": { "babel-core": "^6.0.20", "babel-preset-es2015": "^6.0.15", "babel-preset-stage-0": "^6.0.15" } .js文件 "use strict"; async function foo() { await bar(); } function bar() { } exports.default = foo; 正常使用它而不需要异步/等待就可以了。有什么想法我做错了吗?

11
并行调用异步/等待功能
据我了解,在ES7 / ES2016中,将多个awaitin放在代码中的工作方式类似于.then()带有promise的链接,这意味着它们将一个接一个地执行,而不是并行执行。因此,例如,我们有以下代码: await someCall(); await anotherCall(); 我是否正确理解anotherCall()仅在someCall()完成时才会调用?并行调用它们的最优雅方式是什么? 我想在Node中使用它,所以也许有一个异步库解决方案? 编辑:我不满意此问题中提供的解决方案:减速是由于异步生成器中非并行等待promise,因为它使用生成器,并且我询问的是更通用的用例。

6
使用babel和webpack时如何生成源地图?
我是webpack的新手,我需要进行设置以生成Sourcemap。我正在webpack serve从命令行运行,该命令行已成功编译。但是我真的需要sourcemap。这是我的webpack.config.js。 var webpack = require('webpack'); module.exports = { output: { filename: 'main.js', publicPath: '/assets/' }, cache: true, debug: true, devtool: true, entry: [ 'webpack/hot/only-dev-server', './src/components/main.js' ], stats: { colors: true, reasons: true }, resolve: { extensions: ['', '.js', '.jsx'], alias: { 'styles': __dirname + '/src/styles', 'mixins': __dirname + '/src/mixins', …

5
ES6导出/导入索引文件
我目前正在通过webpack / babel在React应用中使用ES6。我正在使用索引文件来收集模块的所有组件并导出它们。不幸的是,这看起来像这样: import Comp1_ from './Comp1.jsx'; import Comp2_ from './Comp2.jsx'; import Comp3_ from './Comp3.jsx'; export const Comp1 = Comp1_; export const Comp2 = Comp2_; export const Comp3 = Comp3_; 因此,我可以像这样从其他地方很好地导入它: import { Comp1, Comp2, Comp3 } from './components'; 显然,这不是一个很好的解决方案,所以我想知道是否还有其他方法。我似乎无法直接导出导入的组件。

4
Babel 6更改默认导出方式
以前,babel将添加这行module.exports = exports["default"]。它不再这样做。这意味着在我不能做之前: var foo = require('./foo'); // use foo 现在,我必须这样做: var foo = require('./foo').default; // use foo 没什么大不了的(我猜这就是应该一直以来的样子)。问题是我有很多代码取决于事情的工作方式(我可以将大多数代码转换为ES6导入,但不是全部)。任何人都可以给我有关如何使旧方法工作的提示,而不必经历我的项目并解决此问题的方法(甚至是一些有关如何编写codemod来做到这一点的说明也很巧妙)。 谢谢! 例: 输入: const foo = {} export default foo 使用Babel 5输出 "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var foo = {}; exports["default"] = foo; module.exports = exports["default"]; 使用Babel …

13
Nodejs5和babel中的“意外令牌导入”?
在js文件中,我使用import代替require import co from 'co'; 并尝试通过nodejs直接运行它,因为它说import是“运输功能”和支持,没有任何运行时标记(https://nodejs.org/en/docs/es6/),但是我遇到了一个错误 import co from 'co'; ^^^^^^ SyntaxError: Unexpected token import 然后我试图用通天塔 npm install -g babel-core npm install -g babel-cli npm install babel-core //install to babel locally, is it necessary? 并由 babel-node js.js 仍然有相同的错误,意外的令牌导入? 我如何摆脱它?

5
导入lodash的正确方法
我在下面有一个请求请求反馈,只是想知道哪种方法是导入lodash的正确方法? 您最好从'lodash / has'中导入。.对于本身很重的lodash(v3)的早期版本,我们应该仅导入特定的模块/函数,而不是导入整个lodash库。不确定较新的版本(v4)。 import has from 'lodash/has'; 与 import { has } from 'lodash'; 谢谢

4
如何使用箭头函数(公共类字段)作为类方法?
我是将ES6类与React结合使用的新手,以前我一直将我的方法绑定到当前对象(如第一个示例所示),但是ES6是否允许我使用箭头将类函数永久绑定到类实例?(在作为回调函数传递时很有用。)当我尝试使用CoffeeScript尝试使用它们时,会出现错误: class SomeClass extends React.Component { // Instead of this constructor(){ this.handleInputChange = this.handleInputChange.bind(this) } // Can I somehow do this? Am i just getting the syntax wrong? handleInputChange (val) => { console.log('selectionMade: ', val); } 这样,如果我要传递SomeClass.handleInputChange给,setTimeout它将被限制为类实例,而不是window对象。

8
“代码生成器使[某些文件]的样式超过了“ 100KB”的最大值时,它已经取消了样式的优化”是什么意思?
我向项目添加了一个新的npm软件包,并在我的一个模块中要求它。 现在我从webpack收到此消息, build modulesNote: The code generator has deoptimised the styling of "D:/path/to/project/node_modules/ramda/dist/ramda.js" as it exceeds the max of "100KB". 这是什么意思?我需要采取一些行动吗?
164 webpack  babeljs 

11
ES6 / 2015中的空安全属性访问(和条件赋值)
是否有一个null-safe属性访问(空传播/存在)操作者在ES6(ES2015 / JavaScript.next /和谐)等?.中的CoffeeScript例如?还是计划针对ES7? var aThing = getSomething() ... aThing = possiblyNull?.thing 大致如下所示: if (possiblyNull != null) aThing = possiblyNull.thing 理想情况下,解决方案不应该分配(甚至undefined)到aThing如果possiblyNullISnull

11
如何将用ES6编写的模块发布到NPM?
当我考虑在ES6中重写它时,我打算将其发布给NPM,以适应将来的需求并学习ES6。我已经使用Babel移植到ES5,并运行测试。但是我不确定如何进行: 我是否要转换并把生成的/ out文件夹发布到NPM? 我是否将结果文件夹包含在我的Github存储库中? 还是我要维护2个存储库,一个使用Github的ES6代码+ gulp脚本,一个使用转换后的结果+ NPM测试? 简而言之:我需要采取什么步骤将ES6编写的模块发布到NPM,同时仍然允许人们浏览/分叉原始代码?

7
如何安装babel-polyfill库?
我刚刚开始使用Babel将我的ES6 javascript代码编译成ES5。当我开始使用Promises时,它似乎无法正常工作。Babel网站声明了通过polyfills支持承诺的支持。 没有运气,我尝试添加: require("babel/polyfill"); 要么 import * as p from "babel/polyfill"; 这样,我将在应用程序引导时收到以下错误: 找不到模块“ babel / polyfill” 我搜索了模块,但似乎这里缺少一些基本的东西。我还尝试添加了旧的和好的蓝鸟NPM,但看起来好像没有用。 如何使用Babel的polyfills?

14
使用ES6语法和Babel扩展Javascript中的错误
我正在尝试使用ES6和Babel扩展Error。它没有解决。 class MyError extends Error { constructor(m) { super(m); } } var error = new Error("ll"); var myerror = new MyError("ll"); console.log(error.message) //shows up correctly console.log(myerror.message) //shows empty string 错误对象永远不会获得正确的消息集。 在Babel REPL中尝试。 现在,我已经看到了一些关于SO的解决方案(例如在这里),但是它们似乎都非常不属于ES6-y。如何以一种不错的ES6方式做到这一点?(在Babel工作)

1
升级到Babel 7:无法读取null的属性“绑定”
通过运行以下命令,我刚刚从6 升级到Babel 7: npm remove babel-cli npm install --save-dev @babel/cli @babel/core @babel/preset-env 这是我的.babelrc文件: { "presets": ["env"] } 然后我跑了: babel js/src --out-dir js/dist 结果是: TypeError: Cannot read property 'bindings' of null at Scope.moveBindingTo (/xyz/node_modules/@babel/traverse/lib/scope/index.js:867:13) at BlockScoping.updateScopeInfo (/xyz/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:364:17) at BlockScoping.run (/xyz/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:330:12) at PluginPass.BlockStatementSwitchStatementProgram (/xyz/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:70:24) at newFn (/xyz/node_modules/@babel/traverse/lib/visitors.js:193:21) at NodePath._call (/xyz/node_modules/@babel/traverse/lib/path/context.js:53:20) at NodePath.call …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.