node 支持esmodule
方法一 在 package.json 内指定 type 字段为 module
该"type"字段定义Node.js用于所有 .js 以该 package.json 文件为最接近父文件的文件的模块格式 。
.js 当最近的父 package.json 文件包含 "type" 值为的顶级字段时,以 结尾的文件将作为ES模块加载  "module"
  "type": "module",

方式二 修改文件后缀为mjs
注意mjs和commonjs尽量不能混用
index.mjs
import obj from "./module.mjs";
console.log(obj);
module.mjs
export default {
  a: 1,
};
执行
node index.mjs
结果:

方法三 使用webpack编译
1安装webpack和webpack-cli
npm install webpack webpack-cli --save-dev
2.安装babel
npm install --save-dev babel-loader @babel/core
npm install @babel/preset-env --save-dev
3.新建webpack.config.js
const path = require("path");
module.exports = {
  //配置模式
  mode: "development",
  //配置入口文件
  entry: "./index.js",
  //输出文件
  output: {
    path: path.join(__dirname, "/dist"),
    filename: "test.js",
  },
  module: {
    rules: [
      //使用babel编译js
      {
        test: /\.m?js$/,
        exclude: /node_modules/,
        use: {
          loader: "babel-loader",
        },
      },
    ],
  },
};
4.新建babel.config.json文件
{
  "presets": ["@babel/preset-env"]
}
5.执行编译后的 test.js
node test.js
6.结果:

 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号