问题标签 [grunt-babel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
598 浏览

javascript - grunt-babel 打破文件格式(新行和空格)

我刚刚开始在我的应用程序中使用带有grunt-babel 的 babel 但是我遇到了一些我想避免的行为:

在通天塔之前

通天塔之后

我的grunt 任务如下所示:

请注意,babel 删除了空白行,添加/删除了破坏先前格式的空格。

有什么办法可以避免这种情况并保持我的格式?

0 投票
1 回答
6531 浏览

javascript - Grunt babel 多个文件并保留源映射

我正在尝试使用 grunt 和 babel 来转换文件夹中的所有 js6 文件,并最终得到一个连接的单个文件(js5),其中包含一个工作源映射到原始 es6 文件。但是源映射不起作用。我的 babel,concat 设置如下:

我首先得到一个包含大量 js 文件和 src 映射(tmp 目录)的文件夹。但是将它们连接到一个文件中会完全弄乱源映射。

想法?另外,我可以以某种方式跳过临时文件的制作并将结果通过管道传输到 concat 中吗?

0 投票
1 回答
451 浏览

javascript - Grunt watch 任务无法转译 ES6 代码

每当我更改 es6 文件时,我都会使用 grunt 和 grunt-babel 转译 ES6 代码。但是,其中一个文件似乎有错误,因为我在进行更改时收到此消息

我有几个问题。

  1. scripts/test.es6.js 是一个正确的 ES6 文件,但是由于 scripts/actions.es6.js 中的错误而更改它的 ES5 版本时它没有出现在我的输出文件夹中 - 为什么?
  2. 如何在我的 ES6 代码中找到这个错误?
  3. 为什么强制标志不导致它编译?

谢谢

这是 test.es6.js

这是actions.es6.js

错误发生在 var id = datum.id;

0 投票
4 回答
5411 浏览

javascript - 在 Jasmine 中运行 javascript es6 代码

我正在 angularjs 应用程序中探索 JavaScript es6 代码,并使用 grunt babel 将 es6 编译为 es5。

我的单元测试(茉莉花)没有使用 phantomjs 运行 es6 代码。

什么是运行测试的最佳方式?有没有什么插件可以让 jasmine 运行 es6 代码?

0 投票
2 回答
1735 浏览

javascript - 咕噜巴贝尔不工作

我正在尝试将 es6 转换为 es5,但它不起作用。

我的 Gruntfile.js

当我运行 grunt 时,文件 dist/app.js 与 app.js 相同

有什么问题吗?

0 投票
1 回答
91 浏览

javascript - 如何理解 Grunt 任务选项

我的目标是在浏览器上运行 ES6 代码,在阅读了很多之后,我发现了这个 enter link description here

并且能够运行 ES2015 代码。但是我很难创建 Gruntfile.js,我不明白哪些关键字可用以及它们的作用。以browserify为例,它可以这样配置

然后我去browserify网站阅读文档。有presets,但没有transform。我怎么知道我应该嵌套 dist>options>transform,并presets在其中包含一个?我可以使用loose: "all"吗?当我尝试理解 grunt 时,同样的问题,为什么人们使用dist, 是用于 cli (运行 grunt --target=dist)?

对不起,如果我听起来很愚蠢,几天来很难理解咕噜声的选择。

0 投票
1 回答
349 浏览

gruntjs - grunt-babel 不能作为多任务工作

以下配置按预期工作,但是当//build: {未注释这些内容时,它要么默默地失败,要么做了一些令我意想不到的事情。

因此,在//build: {注释掉的情况下,es5-app会在 处创建目录build/src,但在//build: {未注释的情况下,不会创建目录。在这两种情况下, grunt 都运行为grunt babel,并返回Done, without errors

0 投票
1 回答
1261 浏览

reactjs - babel 转译返回对象而不是字符串或函数

我的组件代码如下所示。

我的 .babelrc 文件是:

当编译发生时,它以“对象”而不是函数或字符串的形式给出输出。

这是输出对象。Banner: Banner(props) esModule: true __proto : Object

这导致 React 抛出错误:

Uncaught Invariant Violation:元素类型无效:期望字符串(对于内置组件)或类/函数(对于复合组件)但得到:对象。

转译代码:

任何帮助将不胜感激。让我知道是否需要更多详细信息!

0 投票
0 回答
138 浏览

gruntjs - 如何使用来自 grunt-contrib-concat 的 grunt-babel 的源映射

我通过 grunt 设置了一些自动化,第一步使用 grunt-contrib-concat (v 0.5.1),第二步使用 grunt-babel (v 6.0.0)。如果我使用 concat 生成源映射的选项,选项“embed”和“inline”会在 babel 中引发以下错误,并且不会生成进一步的输出:

选项“链接”显然被忽略了,babel 完成了它的工作,控制台中出现的所有代码都与连接的 js 文件和行号一起显示。

这种行为有什么解决方法吗?

0 投票
1 回答
124 浏览

babeljs - 调试 Babel 6 生成的 ES2015 代码不起作用

我正在试验 ES2015 JavaScript 并在 grunt 上使用 Babel 6 将代码编译成浏览器兼容的代码。

当我使用 Babel 的在线代码转换器 ( https://babeljs.io/repl/ ) 并将代码复制到我的文件中时,调试器在 Chrome 中可以完美运行一次。

但是,如果我将 babel 生成的代码保留在 grunt 中,则会触发调试,但不会在正确的行号处。

他们的在线工具使用 Babel 5,而我使用的是版本 6,所以我知道有些东西明显不同。但是在仔细查看了两个版本的输出之后,似乎唯一的区别是这里和那里的一些闭包。

我错过了什么吗?

这是我的 ES2015 JavaScript 代码:

这是 Babel 6 通过 grunt 的输出:

这是 Babel 5 使用他们的在线工具的输出: