Javascript 使用NodeJS从package.json获取name属性
我想知道NodeJs中是否有方法从我的项目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.
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