TOGOUTECH

javascript - Babel 将 'import' 转译为 'require' ,但 'require isn' t 在 ecma5 中可用

coder 2024-05-16 原文

据我了解,使用 Babel 允许您通过转译在 ecma5 环境中使用 ecma6 javascript。但是,当我使用“导入”时,“导入”被转换为“需要”。 “require”不是 ecma5,需要库“require.js”。因此,您不能在没有附加依赖项的情况下使用“导入/导出”,对吗?

最佳答案

是的,Babel 只是为了翻译新的语言特性以与现代 javascript 引擎兼容。 Babel 不会编译为 require.js 模块导入语法。相反,它使用 Node.js 使用的 CommonJS 模块语法。因此,您可以直接运行代码,而无需在 Node.js 中进一步构建依赖项。

由于它一次对单个文件进行操作并且是一种直接的翻译,因此它不会决定您希望如何将其他文件的源代码包含到当前文件中。

也就是说,如果你打算在浏览器中使用它,你将需要一个支持 CommonJS 模块语句的构建系统或 bundler :

  • 参见 https://babeljs.io/docs/setup/#installation获取许多典型构建配置的列表
  • Browserify 和 Webpack 是 Javacript 生态系统中最受欢迎的两个
  • 这些系统通过在任何引用“require”的地方注入(inject)文件来“捆绑”您的 javascript 代码,因此通常会生成一个输出 js 文件,您可以在 ecma5 中运行该文件

关于javascript - Babel 将 'import' 转译为 'require' ,但 'require isn' t 在 ecma5 中可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38166498/

有关javascript - Babel 将 'import' 转译为 'require' ,但 'require isn' t 在 ecma5 中可用的更多相关文章

  1. 循环内的 Javascript 变量声明 - 2

    我有一个近乎强制性的习惯,但我认为这可能是完全没有必要的。使用如下代码:functionabc(){vara,b;for(vari=0;i<10;i++){a=document.getElementsByTagName('LI').item(i).width;b=document.getElementsByTagName('DIV').item(i).width;//nowdosomethingwithaandb}return;}我强制自己在循环之前声明变量,而不是:functionabc(){for(vari=0;i<10;i++){var

  2. javascript - 我如何将 Math.max 与对象数组一起使用? - 2

    我想选择对象数组中最大的数字,因此,例如,我想获取包含最大数字的x属性(在此示例中,maximum应为200):varmyArr=[{x:100,y:200},{x:200,y:500}];//doesnotwork:varmaximum=Math.max.apply(Math,myArr.x); 最佳答案 您必须自己从对象中提取属性:varmaximum=Math.max.apply(Math,myArr.map(function(o){returno.x;}));它使用.map()遍历数组的元素并返回“x”属性的值。然后将该结果

  3. javascript - array.map 在字符串中连接时自动附加逗号? - 2

    我对此处Array.map函数的行为感到有点困惑:vararr=['one','two','three'];varresult='';result+=arr.map(function(elm){returnelm;});//'one,two,three'它如何自动将返回的结果与,连接起来?注意:只有当我将返回的结果连接成一个字符串时才会发生这种情况。 最佳答案 Array.map对您的数组没有任何作用。你基本上做到了这一点''+['

  4. javascript - '未捕获的语法错误 : Unexpected token <' in Node. js - 2

    当我尝试提供客户端代码时出现以下屏幕截图错误。当我尝试运行nodeserver/server.js时:下面是我的server.js代码...app.use(express.static(path.join(__dirname,"public")));app.use(logger('dev'));app.use(bodyParser.json({limit:'50mb'}));app.all('/*',function(req,res,next){res.header("Access-Control-Allow-Or

  5. javascript - 如何在 MVC 中的 JavaScript 中的 url.action 中传递多个参数? - 2

    我的MVC应用程序中有以下javascript函数,functionEditProducts(productId,orderId,employeeId,mode){mode="edit";debugger;varurl='@Url.Action("Index","Home",new{productId="__productId__",orderId="__orderId__",employeeId="__employeeId__",Mode="__mode__"})&

  6. javascript - 获得 parent 的第n个 child - 2

    我有一个表格,我需要每行的前两个单元格可点击(不是整行)。当我单击第一个或第二个单元格时,我想获取同一行第三个单元格的值。澄清一下,当我按下a1时,我希望警报显示c1,如果我按下b2,我希望它显示c2并且如果我按c3我不想发生任何事情。如您所见,我的alert($(this).parent(':nth-child(3)').text());不起作用..我怎么能实现这个?$('td:nth-child(-n+2)').on("click",function(){alert($(this).parent(':nth-child(3)').te

  7. javascript - ReactJs - 语法错误 : embedded: Unterminated JSX contents - 2

    我是ReactJs的新手,我有一个愚蠢的问题,我想,但我看不出它的原因所在。我的训练代码:varListComponent=React.createClass({render:function(){return(<li>{this.props.value}</li>);}});varTodoComponent=React.createClass({getInitialState:function(){return{listPoints:[]}},addListPoint:function(event){if(event.target.value!=='&

  8. javascript - Google Maps API 自动完成同一页面上的第二个地址字段 - 2

    我在我的页面上使用GoogleMapsAPI,该页面要求用户填写您的“当前地址”和“新地址”。我可以让自动完成功能在第一个地址上工作,但它对第二个地址不起作用,我做了很多研究并查看了stackoverflow上的类似帖子,但我找不到遇到同样问题的人。这是我的代码;<divid="locationField"><inputid="autocomplete"placeholder="Starttypingyouraddress"onFocus="geolocate()"type="text"&

  9. javascript - 如何使用 ES6 字符串模板添加多个空格? - 2

    我有一个目前看起来像这样的字符串模板:varoption="\u00A0"+"\u00A0"+"\u00A0"+"\u00A0"+option.name;我正在尝试更改为新的ES6语法varoption=`${option.name}`但是当它出现在屏幕上时,ES6版本中没有任何空格,或者在我指定它的字符串上没有4个空格缩进。该问题可能与我在select中将这些字符串用作options有关。有什么想法吗? 最佳答案 在第一个示例中,您使用了不间断空格(\u00A0),在

  10. javascript - 如何在 Angular/Node.js/Express 中将客户端参数传递给服务器端 - 2

    可能是一个非常基本的问题,但我似乎找不到简单的答案。我有一个利用Angular的$http的GET方法,它请求来自特定url(URL_OF_INTEREST)的promise。在此服务器上,我运行了一个可以处理GET请求的快速脚本server.js脚本。server.jsvarexpress=require('express');//callexpressvarapp=express();//defineourappusingexpressvarbodyParser=require('body-parser');varstripe=require(

随机推荐

  1. 循环内的 Javascript 变量声明 - 2

    我有一个近乎强制性的习惯,但我认为这可能是完全没有必要的。使用如下代码:functionabc(){vara,b;for(vari=0;i<10;i++){a=document.getElementsByTagName('LI').item(i).width;b=document.getElementsByTagName('DIV').item(i).width;//nowdosomethingwithaandb}return;}我强制自己在循环之前声明变量,而不是:functionabc(){for(vari=0;i<10;i++){var

  2. javascript - 我如何将 Math.max 与对象数组一起使用? - 2

    我想选择对象数组中最大的数字,因此,例如,我想获取包含最大数字的x属性(在此示例中,maximum应为200):varmyArr=[{x:100,y:200},{x:200,y:500}];//doesnotwork:varmaximum=Math.max.apply(Math,myArr.x); 最佳答案 您必须自己从对象中提取属性:varmaximum=Math.max.apply(Math,myArr.map(function(o){returno.x;}));它使用.map()遍历数组的元素并返回“x”属性的值。然后将该结果

  3. javascript - array.map 在字符串中连接时自动附加逗号? - 2

    我对此处Array.map函数的行为感到有点困惑:vararr=['one','two','three'];varresult='';result+=arr.map(function(elm){returnelm;});//'one,two,three'它如何自动将返回的结果与,连接起来?注意:只有当我将返回的结果连接成一个字符串时才会发生这种情况。 最佳答案 Array.map对您的数组没有任何作用。你基本上做到了这一点''+['

  4. javascript - '未捕获的语法错误 : Unexpected token <' in Node. js - 2

    当我尝试提供客户端代码时出现以下屏幕截图错误。当我尝试运行nodeserver/server.js时:下面是我的server.js代码...app.use(express.static(path.join(__dirname,"public")));app.use(logger('dev'));app.use(bodyParser.json({limit:'50mb'}));app.all('/*',function(req,res,next){res.header("Access-Control-Allow-Or

  5. javascript - 如何在 MVC 中的 JavaScript 中的 url.action 中传递多个参数? - 2

    我的MVC应用程序中有以下javascript函数,functionEditProducts(productId,orderId,employeeId,mode){mode="edit";debugger;varurl='@Url.Action("Index","Home",new{productId="__productId__",orderId="__orderId__",employeeId="__employeeId__",Mode="__mode__"})&

  6. javascript - 获得 parent 的第n个 child - 2

    我有一个表格,我需要每行的前两个单元格可点击(不是整行)。当我单击第一个或第二个单元格时,我想获取同一行第三个单元格的值。澄清一下,当我按下a1时,我希望警报显示c1,如果我按下b2,我希望它显示c2并且如果我按c3我不想发生任何事情。如您所见,我的alert($(this).parent(':nth-child(3)').text());不起作用..我怎么能实现这个?$('td:nth-child(-n+2)').on("click",function(){alert($(this).parent(':nth-child(3)').te

  7. javascript - ReactJs - 语法错误 : embedded: Unterminated JSX contents - 2

    我是ReactJs的新手,我有一个愚蠢的问题,我想,但我看不出它的原因所在。我的训练代码:varListComponent=React.createClass({render:function(){return(<li>{this.props.value}</li>);}});varTodoComponent=React.createClass({getInitialState:function(){return{listPoints:[]}},addListPoint:function(event){if(event.target.value!=='&

  8. javascript - Google Maps API 自动完成同一页面上的第二个地址字段 - 2

    我在我的页面上使用GoogleMapsAPI,该页面要求用户填写您的“当前地址”和“新地址”。我可以让自动完成功能在第一个地址上工作,但它对第二个地址不起作用,我做了很多研究并查看了stackoverflow上的类似帖子,但我找不到遇到同样问题的人。这是我的代码;<divid="locationField"><inputid="autocomplete"placeholder="Starttypingyouraddress"onFocus="geolocate()"type="text"&

  9. javascript - 如何使用 ES6 字符串模板添加多个空格? - 2

    我有一个目前看起来像这样的字符串模板:varoption="\u00A0"+"\u00A0"+"\u00A0"+"\u00A0"+option.name;我正在尝试更改为新的ES6语法varoption=`${option.name}`但是当它出现在屏幕上时,ES6版本中没有任何空格,或者在我指定它的字符串上没有4个空格缩进。该问题可能与我在select中将这些字符串用作options有关。有什么想法吗? 最佳答案 在第一个示例中,您使用了不间断空格(\u00A0),在

  10. javascript - 如何在 Angular/Node.js/Express 中将客户端参数传递给服务器端 - 2

    可能是一个非常基本的问题,但我似乎找不到简单的答案。我有一个利用Angular的$http的GET方法,它请求来自特定url(URL_OF_INTEREST)的promise。在此服务器上,我运行了一个可以处理GET请求的快速脚本server.js脚本。server.jsvarexpress=require('express');//callexpressvarapp=express();//defineourappusingexpressvarbodyParser=require('body-parser');varstripe=require(