什么是node --import?它和import语法有什么关系?

  • --import标志的作用:这是Node.js(v20.6+版本后引入)用来在启动脚本时预加载模块的参数。比如执行 node --import ./setup-globals.js app.js,Node会先运行setup-globals.js,再运行app.js。它解决的是环境初始化或全局配置的问题。

  • import语法的关联import是ES6的模块导入语法,它替代了Node传统使用的require()。使用import语法前,你需要让Node识别ES模块(ESM)。方法是:

    • package.json中添加 "type": "module"
    • 或者将文件后缀改为.mjs(如 app.mjs)。

node --import使用实例

text 复制代码
node-import-demo/
├── preload.js        # 预加载模块
├── config.js         # 配置模块
├── main.js           # 主应用
└── package.json      # 项目配置

创建预加载模块preload.js

预加载模块 (preload.js)及配置文件:

javascript 复制代码
// preload.js - 这个文件会在主应用之前执行

// 初始化全局配置
import config from './config.js';
globalThis.appConfig = config;

console.log("预加载模块执行完毕")


//config.js
// config.js - 应用配置
export default {
    appName: "NodeImportDemo",
    version: "1.0.0",
};

创建主应用 (main.js)

创建一个主应用 main.js 进行测试

javascript 复制代码
console.log(`启动主应用,读取预加载配置: ${appConfig.appName} v${appConfig.version}`)

运行结果

bash 复制代码
node --import ./preload.js ./main.js

# 输出结果如下:
预加载模块执行完毕
启动主应用,读取预加载配置: NodeImportDemo v1.0.0