Javascript 在typescript文件中导入package.json:';要求';调用可以转换为导入
我正在设置一个类,通过该类我可以直接将包版本号导入到类中,如下所示:Javascript 在typescript文件中导入package.json:';要求';调用可以转换为导入,javascript,typescript,Javascript,Typescript,我正在设置一个类,通过该类我可以直接将包版本号导入到类中,如下所示: const pkg=require('../package.json') 导出类MyClass(){ 构造函数(){ //从package.json设置基本版本: this.version=pkg.version } } 然而,我目前从机器中的Typescript ghost得到了一点友好的警告,说“'require'调用可能会转换为导入。” 我假设是的,这是可能的,但不是用.json文件 也许我应该问一下,在.ts文件中导
const pkg=require('../package.json')
导出类MyClass(){
构造函数(){
//从package.json设置基本版本:
this.version=pkg.version
}
}
然而,我目前从机器中的Typescript ghost得到了一点友好的警告,说“'require'调用可能会转换为导入。”
我假设是的,这是可能的,但不是用.json文件
也许我应该问一下,在.ts文件中导入package.json的最佳做法是什么?您可以使用
导入
import-pkg from./package.json';
导出默认类MyClass{
公共版本:字符串;
构造函数(){
this.version=pkg.version;
}
}
当您导入一个模块时,提醒您使您的类依赖于该实际文件,我建议您通过将其传递给构造函数来注入pkg。您可以在tsconfig.json的
编译器选项中启用resolveJsonModule
(请参阅),然后使用导入
tsconfig.json
{
"compilerOptions": {
"resolveJsonModule" : true,
}
}
myclass.ts
import {version} from ('../package.json');
export class MyClass() {
version: string;
constructor() {
this.version = version
}
}
不,这不起作用。很遗憾,请从“/package.json”导入{version};->“找不到模块'./package.json'或其相应的类型声明。”您应该添加“resolveJsonModule”:true作为编译选项的一部分添加到tsconfig.json.Yeh,不幸的是,默认情况下它被设置为true。Hmmm,nope-不幸的是,这会引发错误。可能是因为我没有提供我的tsconfig.json文件=>“'rootDir'应该包含所有源文件。”我的根目录是/src,package.json是这个目录的上一个。是否有办法解决编译器选项中的此错误?@MichealJ.Roberts您是否在编译器选项中尝试了baseUrl:“/src”,“而不是rootDir
”?是的,使用此选项,一切似乎都正常工作!理想。