typescript 如何从Angular 库中的package.json获取版本

mbskvtky  于 2022-11-26  发布在  TypeScript
关注(0)|答案(3)|浏览(228)

我不能在angular的库中包含package.json的版本,但它可以在一个项目中工作。我这样使用import:

import { version } from '../../package.json';

并得到以下错误:

ERROR: error TS6059: File '/Users/.../library/package.json' is not under 'rootDir' '/Users/.../library/src'. 'rootDir' is expected to contain all source files.

An unhandled exception occurred: error TS6059: File '/Users/.../library/package.json' is not under 'rootDir' '/Users/.../library/src'. 'rootDir' is expected to contain all source files.

See "/private/var/folders/tw/z8v0wkt50g5876740n99hzy00000gp/T/ng-0JDpjC/angular-errors.log" for further details.

通过require的方式包括整个package.json,这会带来安全风险。import { version } from '../../package.json'只包括版本号,但适用于角应用程序,而不是库。

cotxawn7

cotxawn71#

您可以像导入常规模块一样导入它:

import { version } from 'package.json'

但是一定要在tsconfig.json中将"resolveJsonModule": true添加到compilerOptions

rhfm7lfc

rhfm7lfc2#

这段代码怎么样:

const packageJson = require('../../package.json');
console.log(packageJson.version);
yqlxgs2m

yqlxgs2m3#

正如Jozef提到的,确保打开“resolveJsonModule”:true的值。

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

另一个旧的解决方案是进行http调用并加载package.json文件内容。这在文件内容动态更改时非常有用(例如部署服务器在部署时更新文件内容)。

相关问题