在.mjs
模块中直接引入package.json
文件并使用其中的version
变量,可以使用以下步骤:
-
导入
fs
和path
模块:由于.mjs
是ES模块格式,你需要使用import
语句来导入Node.js的内置模块fs
(文件系统)和path
(路径处理)来读取文件。 -
读取
package.json
文件:使用fs.promises.readFile
异步读取package.json
文件内容,然后解析JSON字符串得到对象。
下面是一个示例代码:
import { readFile } from 'fs/promises';
import path from 'path';
async function getVersionFromPackageJson() {
try {
const filePath = path.resolve(__dirname, 'package.json');
const data = await readFile(filePath, 'utf8');
const packageJson = JSON.parse(data);
return packageJson.version;
} catch (error) {
console.error('Error reading package.json:', error);
return null;
}
}
getVersionFromPackageJson().then(version => {
if (version) {
console.log(`Current version: ${version}`);
}
});
这段代码首先定义了一个异步函数getVersionFromPackageJson
,它读取当前目录下的package.json
文件,将其内容解析成一个JavaScript对象,并返回version
字段的值。然后,调用这个函数并打印出版本号。
请注意,由于.mjs
文件在Node.js中的使用涉及到模块系统的不同处理,确保你的Node.js环境支持ES模块,并且在执行脚本时正确使用node --experimental-modules yourfile.mjs
或者在Node.js项目根目录下有正确的"type": "module"
配置在package.json
中。