方式一:
在package.json文件的scripts域中,配置以下的命令:
"start": "cross-env NODE_ENV=dev node -r esm server/index.js”
这行命令的重点在于node命令的-r参数,参数值为esm。
如果程序的运行使用的是pm2,则可以使用类似以下的命令来启动应用:
pm2 start npm -- run <scriptname>
对于上例来说,就是:
pm2 start npm -- run start
方式二:
以上方式不能实现开发时的监听代码变化,一般我们使用nodemon来实现代码变化时自动进行代码转换的功能,以下方式可以在开发模式下,支持esm。
"dev": "cross-env NODE_ENV=dev nodemon server/index.js --watch server --exec babel-node"
方式三:
如果项目中使用的是纯的import,没有使用require,则可以使用node的--experimental-modules参数:
"start": "cross-env NODE_ENV=dev node --experimental-modules server/index.mjs”