Javascript 使用NodeJS从package.json获取name属性

Javascript 使用NodeJS从package.json获取name属性,javascript,node.js,typescript,Javascript,Node.js,Typescript,我想知道NodeJs中是否有方法从我的项目package.json文件中获取name属性: { "name": "bendiciones", "version": "1.12.0", "description": " bendiciones", "main": "main.js", "scripts": { ... } 我试过了 import {name} from './package.json'; import {name} from './app.

我想知道NodeJs中是否有方法从我的项目
package.json
文件中获取name属性:

{
    "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);

但是我得到了
未定义的

您可以
要求整个文件并选择您想要的属性:

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

console.log(packageJSON.name);

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

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

console.log(packageJSON.name);

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

declare module "*.json" {
    const value: any;
    export default value;
}

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

declare module "*.json" {
    const value: any;
    export default value;
}

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

var-packageFile=require('./package.json');
console.log(packageFile);
警告:

小心不要向客户机公开您的
包.json
,因为这意味着所有依赖项版本号、构建和测试命令等都会发送到客户机。
如果在同一个项目中构建服务器和客户端,那么也会公开服务器端版本号。 攻击者可以使用这些特定数据来更好地适应服务器上的攻击


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

var-packageFile=require('./package.json');
console.log(packageFile);
警告:

小心不要向客户机公开您的
包.json
,因为这意味着所有依赖项版本号、构建和测试命令等都会发送到客户机。
如果在同一个项目中构建服务器和客户端,那么也会公开服务器端版本号。 攻击者可以使用这些特定数据来更好地适应服务器上的攻击


如果您使用的是TypeScript,这将变得很容易:

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

pkg.name;
它确实需要在
tsconfig.json
中使用以下
编译器选项:

{
    "compilerOptions": {
        "module": "commonjs",
        "resolveJsonModule": true,
        "esModuleInterop": true
    }
}

如果您使用的是TypeScript,这将变得很容易:

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

pkg.name;
它确实需要在
tsconfig.json
中使用以下
编译器选项:

{
    "compilerOptions": {
        "module": "commonjs",
        "resolveJsonModule": true,
        "esModuleInterop": true
    }
}

如果使用纯Javascript而没有加载程序,则必须手动加载package.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);

如果使用纯Javascript而没有加载程序,则必须手动加载package.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);

我发现很多问题都有答案,你看过吗?那么这些答案在您的情况下不起作用呢?您是说您自己的package.json还是package.json属于已安装的软件包?哪个节点版本?大多数版本不支持本机
import
语句,您需要使用
require
我发现很多问题都有答案,您看过吗?那么这些答案在您的情况下不起作用呢?您是说您自己的package.json还是package.json属于已安装的软件包?哪个节点版本?大多数版本不支持本机
import
语句,您需要使用
require