Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在typescript文件中导入package.json:';要求';调用可以转换为导入_Javascript_Typescript - Fatal编程技术网

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
”?是的,使用此选项,一切似乎都正常工作!理想。