Node环境下如何将libs/lib.js完整导入至projects/main/script.js
Node.js 文件导入方案
目录结构
/node ├── libs │ └── lib.js └── projects └── main └── script.js
导入方法
1. 相对路径直接导入
这是最直接的方式,在 script.js 里根据层级关系定位到 lib.js:
- 如果你用 CommonJS 规范(Node.js 默认):
// script.js const lib = require('../../libs/lib.js');
- 如果你用 ES 模块(需在项目根目录
package.json中配置"type": "module"):
// script.js import lib from '../../libs/lib.js';
2. 绝对路径导入(避免层级混乱)
通过 Node.js 内置的路径模块拼接绝对路径,不用担心目录层级变动:
- CommonJS 写法:
// script.js const path = require('path'); const lib = require(path.join(__dirname, '../../libs/lib.js'));
- ES 模块写法:
// script.js import path from 'path'; import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); import lib from path.join(__dirname, '../../libs/lib.js');
3. 简化导入配置(可选)
如果不想每次写长路径,可以通过配置优化:
- 方法一:在项目根目录
package.json中添加exports字段(ES 模块推荐):
{ "exports": { "./lib": "./libs/lib.js" } }
之后在 script.js 里就能这样导入:
import lib from '/lib';
- 方法二:设置
NODE_PATH环境变量(CommonJS 适用):
启动脚本时指定环境变量:
NODE_PATH=./node/libs node node/projects/main/script.js
然后在 script.js 里直接写:
const lib = require('lib.js');
内容的提问来源于stack exchange,提问作者Gzrespect
相关产品推荐
相关产品推荐

