为了账号安全,请及时绑定邮箱和手机立即绑定

使用节点JS从包.json获取名称属性

使用节点JS从包.json获取名称属性

慕后森 2022-09-29 16:42:34
我想知道在 NodeJs 中是否有办法从我的项目文件中获取 name 属性:package.json{    "name": "bendiciones",    "version": "1.12.0",    "description": " bendiciones",    "main": "main.js",    "scripts": {...}我试过import {name} from './package.json';import {name} from './app.json'但我得到了错误:TS2307: Cannot find module './package.json'.TS2307: Cannot find module './app.json'.我也尝试过: console.log ('--2>', process.env.npm_package_name);但我得到undefined
查看完整描述

5 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

我有类似的问题。作为解决方案,您应该添加自定义类型,即 与内容json-loader.d.ts


declare module "*.json" {

    const value: any;

    export default value;

}


查看完整回答
反对 回复 2022-09-29
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

如果您使用的是类型脚本,这变得很容易:


import pkg from '../path/to/package.json';


pkg.name;

它确实需要以下在你的:compilerOptionstsconfig.json


{

    "compilerOptions": {

        "module": "commonjs",

        "resolveJsonModule": true,

        "esModuleInterop": true

    }

}


查看完整回答
反对 回复 2022-09-29
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

您可以浏览整个文件并选择所需的任何属性:require


const packageJSON = require("path/to/your/package.json");


console.log(packageJSON.name);


查看完整回答
反对 回复 2022-09-29
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

我也想做同样的事情,这是有效的代码。由于它用于加载 ,因此无论当前的工作目录如何,它都可以工作。requirepackage.json

var packageFile = require('./package.json');
console.log(packageFile);

警告:

请注意不要向客户端公开您的,因为这意味着您的所有依赖项版本号,构建和测试命令等都将发送到客户端。
如果要在同一项目中生成服务器和客户端,则也会公开服务器端版本号。攻击者可以使用此类特定数据来更好地适应服务器上的攻击。package.json


查看完整回答
反对 回复 2022-09-29
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

如果您使用的是没有加载器的纯 Javascript,则必须手动加载包 .json 文件:


import { readFileSync } from "fs";


// ./package.json is relative to the current file

const packageJsonPath = require.resolve("./package.json");


const packageJsonContents = readFileSync(packageJsonPath).toString();


const packageJson = JSON.parse(packageJsonContents);


console.log(packageJson.name);


查看完整回答
反对 回复 2022-09-29
  • 5 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信