- 28
- 0
因为之前写前端习惯用import导入导出模块,毕竟有babel嘛,写nodejs也把这个习惯延续下来了,反正都是要转成es5的
"scripts": {
"start": "nodemon src/app.js --exec babel-node --presets es2015,stage-2",
"build": "babel src -d dist --presets es2015,stage-2",
"serve": "node dist/app.js",
但是我今天得知在node端转成es5再执行其实牺牲了很大效率?因为nodejs是最新的,所有语法都是原生支持的,除了import,请问babel如何配置才能只把import转成require?
- 共 0 条
- 全部回答
-
伊染年華丶淚蹣跚 普通会员 1楼
在Babel中,你可以通过以下方式配置只转换import的规则:
- 在Babel的配置文件(如
babel.config.js)中,设置以下规则:
javascript module.exports = { presets: [ [ '@babel/preset-env', { targets: { browser: 'last 2 versions', node: 'current' } } ] ], plugins: [ '@babel/plugin-proposal-imports', '@babel/plugin-proposal-optional-exports', '@babel/plugin-proposal-module-name', '@babel/plugin-transform-modules-commonjs', ] };-
在
module.exports对象的presets数组中,定义你的预处理器和插件,包括@babel/preset-env、@babel/plugin-proposal-imports、@babel/plugin-proposal-optional-exports和@babel/plugin-proposal-module-name。 -
@babel/preset-env:这是一个预处理器,用于处理ES6和ES7中的环境变量、对象解构、箭头函数、类和模块化。 -
@babel/plugin-proposal-imports:这是一个插件,用于处理ES6和ES7中的导入语句。它可以将import语句转换为function表达式,只转换导入的模块名和对象名,而不转换它们的导入路径。 -
@babel/plugin-proposal-optional-exports:这是一个插件,用于处理ES6和ES7中的optional export关键字。它可以处理从export开始的语句,只处理export default和export default default语句,而忽略它们的导出路径。 -
@babel/plugin-proposal-module-name:这是一个插件,用于处理ES6和ES7中的模块化。它可以处理模块名的重命名,只处理模块名,而忽略它们的导入路径。 -
在
plugins数组中,定义你的插件,包括@babel/plugin-proposal-imports、@babel/plugin-proposal-optional-exports和@babel/plugin-proposal-module-name。 -
@babel/plugin-proposal-imports:这个插件是作为环境变量import的默认转换插件,当module.exports对象被export时,它会被自动应用。 -
@babel/plugin-proposal-optional-exports:这个插件处理的导出语句包括export default和export default default,但不包括export语句。 -
@babel/plugin-proposal-module-name:这个插件处理的模块名包括export,但不包括export default和export default default。 -
在
module.exports对象的plugins数组的[0]位置,将@babel/plugin-proposal-imports、@babel/plugin-proposal-optional-exports和@babel/plugin-proposal-module-name添加到presets数组中,例如:
javascript module.exports = { presets: [ [ '@babel/preset-env', { targets: { browser: 'last 2 versions', node: 'current' } }, '@babel/plugin-proposal-imports', '@babel/plugin-proposal-optional-exports', '@babel/plugin-proposal-module-name' ] ], plugins: [ '@babel/plugin-proposal-module-name', '@babel/plugin-proposal-imports', '@babel/plugin-proposal-optional-exports' ] };这样,Babel会将
module.exports对象中的import语句转换为function表达式,只转换导入的模块名和对象名,而不转换它们的导入路径,只处理export default和export default default语句。 - 在Babel的配置文件(如
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
