Tag: babeljs

如何运行与Nashorn反应的babel.transform?

我正在尝试使用babel.transform而不是JSXTranformer来做出反应。 … ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine nashorn = mgr.getEngineByName("nashorn"); nashorn.eval("var process = {env:{}}"); // node-modules expect that nashorn.eval(getScript("com/facebook/babel/jvm-npm.js")); babel = (JSObject) nashorn.eval("require('babel');"); … Babel和babel-core被安装为全局节点模块,并且出现错误: testing套件:com.my.app.BabelTransformerTest 找不到模块./lib/api/node.js 无法加载模块babel-core LOAD_ERROR 无法加载模块babel LOAD_ERROR 无法加载模块babel-core LOAD_ERROR 无法加载模块babel LOAD_ERROR 找不到模块./lib/api/node.js 无法加载模块babel-core LOAD_ERROR 无法加载模块babel LOAD_ERROR ./lib/api/node.js位于C:\Users\***\AppData\Roaming\npm\node_modules 我听说有可能从Nashorn运行babel.transform ? 也许有只加载一个babel的特定模块作为JavaScript文件的方法?

Azure Node.js Web应用程序的自定义启动命令(ES2015 / babel)?

我正在将ES2015 node.js应用程序从Heroku迁移到Azure。 在Heroku上运行的当前启动命令是 "start": "./node_modules/babel-cli/bin/babel-node.js index.js" 但是,在Azure上,我越来越 package.json中的启动命令“./node_modules/babel-cli/bin/babel-node.js index.js”无效。 请使用格式“node <script relative path>”。 这表明Azure仅支持用于npm start vanilla节点。 我知道在生产上运行babel-node并不理想,但我希望能够直接迁移。 三个需要重新devise的选项是: 使用gulp工作stream预编译ES2015: https : //github.com/christopheranderson/azure-node-es2015-example 使用bash工作stream预编译ES2015: http : //www.wintellect.com/devcenter/dbaskin/deploying-an-es6-jspm-nodejs-application-to-azure 使用babel-register阿拉[评论链接]。 我怀疑选项3将是最简单的,但检查是否有人遇到过类似的问题,并设法在Azure上直接在npm start babel-node 。

无法解决承诺时使用asynchronous与巴贝尔和ES6诺言等待

我有以下节点应用程序包含一个asynchronous函数,等待ES6的承诺。 async function test(id){ try { let val = await Promise.resolve(id); console.log("val: " + val); } catch (error) { console.log("error: " + error); } } test(1); 结果= val:未定义 预期结果:val:1 我用gulp-babel把它编译成ES5。 我有以下设置在吞咽任务: .pipe(babel({ optional: ["es7.asyncFunctions"] })) 在npm安装babel之后,我也需要“babel / polyfill”。 运输代码: function test(id) { var val; return regeneratorRuntime.async(function test$(context$1$0) { while (1) switch (context$1$0.prev = context$1$0.next) { […]

Webpack – 没有输出文件,没有错误报告

我正在学习Webpack,并一次又一次地通过它。 在最新版本中,有一些非常奇怪的事情发生。 CLI报告一切正常&输出文件dress_aphrodite.js被emitted ,但无处可查找文件夹中。 这里是日志:从CLI: http://localhost:8080/webpack-dev-server/ webpack result is served from /app/ content is served from ./app Hash: 5334867c12acfa65ba90 Version: webpack 1.12.9 Time: 1966ms Asset Size Chunks Chunk Names dress_aphrodite.js 390 kB 0 [emitted] main dress_aphrodite.js.map 479 kB 0 [emitted] main chunk {0} dress_aphrodite.js, dress_aphrodite.js.map (main) 354 kB [rendered] [0] multi main 52 bytes {0} […]

在mochatesting中为babel / react / node应用程序启用绝对导入

我正在使用一个现有的babel / react / node应用程序,它使用绝对导入语句来处理项目模块。 例如: import level from 'state/models/level'; 我用babel-node启动服务器 ./node_modules/.bin/babel-node server.js 现在我创build了一些摩卡单位testing。 我打电话给他们 ./node_modules/.bin/babel-node src/test/test_mymodule.js 不幸的是我的testing没有与这些import工作。 我的testing中的导入只在相对时才起作用。 例如: import level from '../state/models/level' 但是我当然不想重写所有的导入语句。 那么,我该如何configuration我的摩卡testing,所有的导入语句被正确解释? 我的应用程序位于src目录中。 我试图把testing放在app目录中,或者创build一个专用的testing目录。 两者都不起作用。 一个指向现有的应用程序,使用巴贝尔和摩卡也将有所帮助。

我应该在npm上发布模块的源代码吗?

我希望这个问题不要太过分,我在问最好的/常见的做法。 我发布了一个用ES6编写的npm模块,并使用babel和rollup转换为ES5和UMD。 文件结构可以总结如下: /coverage/ /dist/ /node_modules/ /src/ /test/ /tools/ .editorconfig .eslintrc .gitattributes .gitignore .travis.yml CHANGELOG.md CONTRIBUTING.md LICENSE.txt package.json README.md 源代码位于/src/ ,编译后的代码位于/dist/ 。 这些dirs是.gitignored: 覆盖 DIST node_modules 用户真正使用的确实是/dist/的内容。 我一直在使用一个构build过程的入门工具包: 拿原来的package.json 从中删除所有的脚本和开发相关的领域 将其复制到dist 还将文件LICENSE和README复制到远程(未触及) 整个软件包源将在GitHub上发布,但我不确定在npm上发布什么 : A)具有顶层package.json的整个文件结构(去除/coverage/和/node_modules/ ),该入口指向dist的相关文件 要么 B)只需发布一个精简的package.json和README&LICENSE的dist内容。 我知道只是发布/dist的内容会使源映射无用。 这里常见的做法是什么?

使用require('babel / register')与运行前编译代码

后者与前者相比有没有任何性能优势? 当我自己testing的时候,我的一个项目加载的时间比使用babel / register要短得多。 除了启动时间,我还不完全确定我会写什么来公平地衡量这两者。 有没有人知道Babel的开销是否仅仅来自babel / register的运行代码,或者不pipe你做什么,都会变慢。

Babel-node不会忽略编译时指定的文件/文件夹

我有一个使用ES6的节点应用程序,使用以下命令运行nodemon cluster.js –exec babel-node 。 我也有一个.babelrc文件: { "presets": ["es2015"], "ignore": [ "public" ] } public文件夹包含前端文件,如html,css和js。 但是当我在公共文件夹中编辑JS文件时, babel-node编译我的代码,我不希望发生这种情况。

Babel编译JS无法导入相对path

我在ES2015中编写了一个npm包,并且使用Babel 6进行编译。ES2015源代码位于/src ,分为/src/core , /src/commands等模块。 因为它是一个CLI工具,所以入口点在/src/bin/app.js 。 如果我运行babel-node src/bin/app.js它按预期工作。 理想情况下,我想全局安装这个工具(像grunt-cli ),所以我用babel src -o /lib/app.js将整个包传递给一个有效的JS(ES5)文件。 但是,如果我尝试运行该文件,则会尝试从相对path请求模块时引发错误,并且因为它们全部合并到app.js所以无法find这些模块。 错误是: $ node_modules/babel-cli/bin/babel-node.js lib/app module.js:328 throw err; ^ Error: Cannot find module '../commands/index' at Function.Module._resolveFilename (module.js:326:15) at Function.Module._load (module.js:277:25) at Module.require (module.js:354:17) at require (internal/module.js:12:17) at Object.<anonymous> (/usr/local/lib/node_modules/app/lib/app.js:19:14) at Module._compile (module.js:398:26) at Module._extensions..js (module.js:405:10) at Object.require.extensions.(anonymous function) [as .js] (/Users/me/dev/app/node_modules/babel-register/lib/node.js:138:7) […]

在服务器上渲染<option value =“foo”selected>

React v0.12 / v0.13:我有一个问题,我想在服务器和客户端(同构)都呈现一个<select>元素。 这是一个当前重现问题的例子: const React = require("react"); const SelectedDebug = React.createClass({ displayName: "SelectedDebug", render() { return ( <div> <select value="C"> <option value="A">A</option> <option value="B">B</option> <option value="C">C</option> </select> </div> ); } }); module.exports = SelectedDebug; selected属性不在服务器上呈现,但在浏览器中正常工作。 我也尝试在<select>元素上设置defaultValue prop,这似乎没有什么区别。 当我使用<option value="C" selected> ,它确实有效,但是,在控制台中会引发警告,告诉我使用value或defaultValue prop。 该文档还描述了所需的行为: https : //facebook.github.io/react/docs/forms.html#why-select-value 此代码在使用babel-core进行转译的Node v0.12中运行。 这是一个错误,还是我错过了什么? 更新:这是React中的一个错误。 看到我的评论/链接下面。