我正在尝试转译一个使用 ES6 语法和 TypeScript 的项目。我有一个这样的目录结构:
??? .babelrc
??? src
??? index.ts
??? pitching
??? pitching.test.ts
??? pitching.ts
Run Code Online (Sandbox Code Playgroud)
我想将所有内容编译src并输出到dist/. 我尝试了以下命令的许多变体(在 中的"build"脚本中指定package.json):
babel ./src -d ./dist
Run Code Online (Sandbox Code Playgroud)
但我总是得到以下输出:
$ babel ./src -d ./dist
Successfully compiled 0 files with Babel (13ms).
Done in 0.32s
Run Code Online (Sandbox Code Playgroud)
结果是dist/我的项目根目录中有一个空目录。我尝试编译为单个文件而不是目录,这确实创建了一个编译文件,但是代码中引用的所有模块路径都被搞乱了,因为它们是相对于src目录的。我之所以提到这一点,是因为对我来说这表明我的 babel 设置是正确的,尽管我也可能错了。
我的问题是,为什么我的文件没有被转译,或者我该如何排除故障?该命令没有给我任何有用的输出,甚至当我加入{"debug": true}到我的预设.babelrc。
作为参考,这里是我使用的 babel 包和版本:
"devDependencies": {
"@babel/cli": "^7.10.3",
"@babel/core": "^7.10.3",
"@babel/preset-env": "^7.10.3",
"@babel/preset-typescript": "^7.10.1",
"@types/jest": "^26.0.3",
"jest": "^26.1.0"
}
Run Code Online (Sandbox Code Playgroud)
这是我的 …
我正在努力以编程方式使用babel。
"use strict";
const babel = require("babel-core")
, es2015 = require("babel-preset-es2015")
;
babel.transformFile("my-file.js", {
presets: [es2015]
}, (err, result) =>
console.log(err || result)
);
Run Code Online (Sandbox Code Playgroud)
这以这个错误结束:
Couldn't find preset "es2015" relative to directory "/Users/myusername"
不过,我确实安装了babel-preset-es2015本地依赖项。如何解决这个问题?
我不想保留babel-preset-es2015和babel-core作为项目的本地依赖项。
为什么会出现这个错误呢?
有没有办法将dart语言用于node.js?诸如现场脚本,咖啡脚本,打字稿等内容。
谢谢!
我正在尝试使用在 js 中开发并在 GitHub 中可用的转译工具。此转译器能够将 javascript 代码转换为 java。
我想通过java代码调用该工具,以便我可以在java中读取js文件并使用在js中开发的transpiler处理它们。该工具使用“const”作为其代码的一部分。在使用 ScriptEngine 时,它给了我一个例外。请帮忙!!
示例代码:
public static void main(String[] args) {
ScriptEngineManager manager = null;
ScriptEngine engine = null;
File folder = null;
try {
manager = new ScriptEngineManager();
engine = manager.getEngineByName("nashorn");
String testConst1 = (String) "const pi = 3.14;";
String testPrint1 = (String) "function hello(name) {print ('Hello, ' + name +' = '+ pi);}";
engine.eval(testConst1);
engine.eval(testPrint1);
Invocable inv = (Invocable) engine;
inv.invokeFunction("hello", "pi");
// System.out.println(); //This one works.
} catch (Exception e) …Run Code Online (Sandbox Code Playgroud) 所以我现在已经经历了一些配置的变化,出于某种原因,某些 webpack 代码没有在生产中使用 babel-loader 转换为 es5 || 开发(指定是因为我知道webpack-dev-server删除了对它的支持)
我.babelrc看起来像这样:
{
"plugins": ["transform-object-assign", "transform-async-to-generator", "transform-object-rest-spread", "transform-class-properties"],
"presets": [
["env", {
"targets": { "browsers": ["chrome >= 49", "firefox >= 54", "ie >= 9"] }
}],
"react"
]
}
Run Code Online (Sandbox Code Playgroud)
我已经按照文档的建议删除es2015并切换到presets -> env,但它也不适用于那里。
我的 webpack 配置如下所示:
module: {
rules: [{
enforce: 'pre',
test: /\.(js|less|css)$/,
exclude: [/node_modules/, /bower_components/],
loader: StringReplacePlugin.replace({ replacements })
}, {
test: /\.(html|svg)$/,
use: 'raw-loader'
}, {
test: /\.js$/,
exclude: [/node_modules/, /bower_components/], …Run Code Online (Sandbox Code Playgroud) 我不确定是什么阻止我在 firebase 上部署 它阻止我部署到 firebase 功能。
\n\nfirebase deploy --only functions\nRun Code Online (Sandbox Code Playgroud)\n\n谁能帮我看看问题出在哪里
\n\n 174:75 warning Unexpected function expression prefer-arrow-callback\n 190:28 warning Unexpected function expression prefer-arrow-callback\n 196:34 warning Unexpected function expression prefer-arrow-callback\n 239:36 warning Unexpected function expression prefer-arrow-callback\n 291:86 warning Unexpected function expression prefer-arrow-callback\n 297:26 warning Unexpected function expression prefer-arrow-callback\n 317:43 warning Unexpected function expression prefer-arrow-callback\n 378:31 warning Don't make functions within a loop no-loop-func\n 477:31 warning Don't make functions within a loop no-loop-func\n\n\xe2\x9c\x96 9 problems (0 errors, 9 warnings)\n …Run Code Online (Sandbox Code Playgroud) javascript transpiler firebase eslint google-cloud-functions
我有一个使用源映射的 JavaScript 应用程序。即,有为.map每个文件服务的.js文件。(这可能不相关,但特别是我通过 Babel 将 .jsx 和 ES6 转换为 ES5)。在 Chrome Dev Tools 中,源映射按预期加载。但是,有时在调试时,我想检查实际的原始转译代码。有没有办法切换到查看转译的代码?
我似乎无法让 Babel 与 Parcel 一起工作,尽管预设是自动安装的。它可以在本地和 Chrome 中运行,但它不会转译 node_modules es6 文件,因此输出仍然存在const/let/...并且无法在 Safari 中运行。
.babelrc
{
"presets": ["@babel/preset-env","@babel/preset-react"]
}
Run Code Online (Sandbox Code Playgroud)
(我也试过env和react那些)。
package.json 脚本
"scripts": {
"start": "parcel index.html",
"build": "parcel build index.html",
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
完整的 package.json (注意这是为了让它工作而搞砸之后)
{
"name": "my-react-app",
"version": "1.0.0",
"description": "",
"main": "src/index.js",
"scripts": {
"start": "parcel index.html",
"build": "parcel build index.html"
},
"author": "",
"license": "ISC",
"dependencies": {
"@babel/core": "^7.1.5",
"@babel/preset-env": "^7.1.5",
"@babel/preset-react": "^7.0.0",
"axios": "^0.18.0",
"babel-polyfill": "^6.26.0",
"browserslist": "^4.3.4",
"lodash": "^4.17.11",
"node-sass": "^4.10.0", …Run Code Online (Sandbox Code Playgroud) 我的watchify-program未检测到子模块中的更改。
子模块位于 ../js/lib/melajs/**/*.js
browserify-program但是,当我运行它时,它会编译子模块。
下面是两个任务。
programAppjs: pathsBase+"js/app.js",
gulp.task("browserify-program",function(){
//appname global variable set in previous task
return browserify([paths.programAppjs])
.bundle()
.pipe(source('bundle.js'))
.pipe(gulp.dest('./public/js'));
});
gulp.task("watchify-program",function(){
var b = browserify({
entries: [paths.programAppjs],
cache: {},
packageCache: {},
plugin: [watchify]
});
b.on('update', bundle);
b.on('log', function (msg) {console.log(time()+" "+ appname+" "+msg);})
bundle();
function bundle() {
b.bundle().pipe(fs.createWriteStream('./public/js/bundle.js'));
}
});
Run Code Online (Sandbox Code Playgroud)
应用程序.js
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import { createStore, applyMiddleware } from 'redux';
import { BrowserRouter, Route, …Run Code Online (Sandbox Code Playgroud) 我正在构建一个 babel 插件,并且可以在 Babel 存储库中找到大量已编写插件的示例。
我找不到用于编写此类插件的权威 API 文档 - 特别是对于我可以对生成的 AST 执行的操作。
我检查过
只是列出几个地方。其中没有一个甚至定义了.get我在现有插件中经常调用的无处不在的方法,更不用说我可以在路径、节点、范围或绑定上调用的其他函数。
Babel 7 转换是否存在明确的文档来源?如果有,它在哪里?