我正在寻找一种方法将完整的Node.js项目中的Babel import
转换为CommonJS风格的require()
。目标是摆脱Babel。
考虑到现在node.js已经内置了像async/await这样的功能,运行Babel就感觉有些多余了。目前Babel所做的唯一事情就是将ES6风格的import
转换为require()
。
我一直在搜索,但找不到任何优雅的半自动化解决方案。编译Babel的输出结果不够清晰,不能直接复制而需大量手动工作。
如果我有一个像这样的输入文件:
import express from 'express'
import bodyParser from 'body-parser'
import authMiddleware from './middlewares/auth'
import { get } from 'lodash'
export const myVar = 1
export default function doSomething() {
// ...
}
...我希望你能为我提供类似于以下内容的输出
const express = require('express')
const bodyParser = require('body-parser')
const authMiddleware = require('./middlewares/auth').default
const { get } = require('lodash')
export.myVar = 1
export.default = function doSomething() {
// ...
}
另一种选择是将文件转换为 .mjs
语法来处理相对路径,并在外部使用 require()
。
这不是我第一次在运行 Babel 的旧的 node 项目中遇到越来越多冗余的情况,因此我相信有人之前已经找到了一个很好的解决方案。
import/export
语法转换,但保持所有其他代码不变,是这样理解吗? - hackapeeslint --fix
的 precommit 钩子。 - Alex