gpt4 book ai didi

javascript - Babel JS——简单地将 JavaScript STRING 转换为 es5(使用 nodejs)

转载 作者:行者123 更新时间:2023-11-30 14:06:32 24 4
gpt4 key购买 nike

我一直在谷歌上搜索很多,发现了很多半答案或没有解决我的问题的答案,所以:

我只是想获取一个输入字符串,该字符串是常规源 javascript 代码(不是 nodejs,只是常规 JavaScript)并将其转换为另一个字符串(不是文件),包含浏览器兼容的 JavaScript(es5 或其他)。

我不是要将 nodejs 作为 es5 来运行,我也不是要转换单个文件,我想获取较新的 JavaScript 的 string 并获得 string 旧的 JavaScript。

现在,使用 BabelJS docs ,它说要这样做:

babel.transform(code, options, function(err, result) {
result; // => { code, map, ast }
});

在创建一个 .babelrc 文件后(和 npm install @babel/preset-env --save-dev):

{
"presets": ["@babel/preset-env"]
}

但在文档中,它没有说明“选项”应该是什么只是让它工作

据说这里有很多其他帖子包括 npm install babel-preset-es2015

module: {
loaders: [
{
test: /\.js$/,
loader: 'babel-loader?presets[]=es2015'
}
]
}

但我认为这是针对不再适用的旧版本

this famous answer给出这个作为解决方案:

npm install babel-preset-env

and run

babel --presets env proxy.js --out-file proxified.js

or create a .babelrc file containing

{
"presets": [
"env"
]
}

and run it just like you were before.

env in this case is a preset which basically says to compile all standard ES* behavior to ES5. If you are using Node versions that support some ES6, you may want to consider doing

{
"presets": [
["env", { "targets": { "node": "true" } }],
]
}

但这只是创建一个新的 javascript FILE 我只是想从另一个字符串创建一个字符串。

我想我需要使用 Babel 7,因为它是最新版本,但我不断收到各种控制台错误..

有人可以提供一个简单的分步过程来让 babel(最好是 7)将较新的 JavaScript 的 string 转换为较旧的 string 吗?

最佳答案

我不确定这是否是您所期望的。

我有这个简单的项目结构:

-- package.json
-- index.js
-- .babelrc

index.js

let babel = require('@babel/core')

// some es6 code
let code = `
let a = () => { console.log('hello') }
`
babel.transform(
code,
{
babelrc: true,
filename: '.babelrc'
},
function(err, result) {
console.log(result.code)
}
)

这是控制台输出:

D:\Documents\code\test>node index.js
"use strict";

var a = function a() {
console.log('hello');
};

D:\Documents\code\test>

还有我的 .babelrcpackage.json 文件,以备不时之需。

{
"presets": [
"@babel/preset-env"
]
}

我只是按照使用指南操作。在这种情况下,不需要 polyfillcli

{
"name": "test",
"version": "1.0.0",
"dependencies": {
"@babel/polyfill": "^7.2.5"
},
"devDependencies": {
"@babel/cli": "^7.2.3",
"@babel/core": "^7.3.4",
"@babel/preset-env": "^7.3.4"
}
}

关于javascript - Babel JS——简单地将 JavaScript STRING 转换为 es5(使用 nodejs),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55277148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com