什么是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