programing

패키지 Import 방법.typeScript에 json이 있나요?

skycolor 2023. 3. 13. 20:18
반응형

패키지 Import 방법.typeScript에 json이 있나요?

제 소포를 수입하려고 합니다.typeScript의 json 파일이 동작하지 않는 것 같습니다.특히 로그 문의 이름과 버전 속성에 액세스할 수 있도록 Import하려고 합니다.예를 들어 다음과 같습니다.

import * as pjson from '../package.json';
// other code here
log.info(`${pjson.name}:${pjson.version}` started on port ...);

Node/Babel을 사용하는 다른 프로젝트에서도 이와 같은 구문을 사용하고 있습니다만, 이러한 부분에 대해 몇 가지 TypeScript를 도입하려고 합니다.다른 곳에서는 다음과 같은 작업을 수행합니다.

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

하지만 그건 여기에서는 통하지 않는다.https://www.npmjs.com/package/json-d-ts의 지시에 따라 Import 명세서의 오류를 없앴습니다만, 속성에 액세스 하려고 하면, 다음의 에러가 표시됩니다.

src/index.ts(20,21): error TS2339: Property 'name' does not exist on type 'typeof import("*.json")'.
src/index.ts(20,35): error TS2339: Property 'version' does not exist on type 'typeof import("*.json")'.

이 문제를 해결할 방법이 있습니까?아니면 이러한 값을 (package.json에서 동적으로 취득하지 않고) 어딘가에서 하드코드해야 합니까?타입을 선언할 수 있을 것 같습니다.import("*.json")이 특성들이 어떻게 정의되어 있는지요?

*.json Import 방법

이미 답변했듯이 Typescript > = 2.9 및 다음 설정이 필요합니다.tsconfig.json:

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

단, 다음과 같은 제한이 있습니다.

  • Common으로 컴파일해야 합니다.JS
  • Import된 모든 JSON은 다음 위치에 있어야 합니다."rootDir"

아쉽게도"rootDir"패키지 아래의 폴더인 경우가 많습니다.'.src' 같은 json은 실패한다.

그래서:
패키지 Import 방법.Json? 할 수 있어요.require다음 중 하나를 선택합니다.
const pjson = require('../package.json');

npm.start를 사용하는 경우 다음을 수행할 필요가 없습니다.

패키지.json 필드는 npm_prefix에 부가됩니다.예를 들어 패키지에 {"name":foo", "version":1.2.5"}이(가) 포함되어 있는 경우.json 파일에서는 패키지 스크립트에 npm_syslog_name 환경변수가 foo로 설정되어 npm_syslog_version이 "1.2.5"로 설정됩니다.코드 내의 이러한 변수에는 process.env.npm_package_name 및 process.env.npm_package_version 등을 사용하여 접근할 수 있습니다.

npm 내보내기package.jsonenv의 아트리뷰트와 프레픽스npm_package_npm 문서에 기재되어 있는 바와 같이
따라서 npm을 사용하는 경우 버전을 얻을 수 있습니다.process.env.npm_package_version

Since TypeScript 2.9 you can import JSON files as described here: typescriptlang documentation 2.9#json, for this you need to enable the "resolveJsonModule" option in your tsconfig.json.

프로젝트에는 타이프스크립트 버전 2.9가 필요합니다.

npm i typescript@latest --save ★★★★★★★★★★★★★★★★★」yarn add typescript

에서 typscript typscript 파일을 "typscript"로 합니다.tsc을 글로벌하게인스톨 할 」 、 「 」 、 「 」

npm i -g typescript@latest ★★★★★★★★★★★★★★★★★」yarn global add typescript

로로 with with with with with with로 를 구축하는 webpack ★★★★★★★★★★★★★★★★★」webpack-dev-server 할 가 있다jsonwebpack-dev-server이치노 당신이, 은 그것을 수 없다.import웹 .jsonajaxJSON.parse.

  1. tsconfig.json 컴파일러 옵션에 다음이 포함되어 있는지 확인합니다.

    "resolveJsonModule": true, "esModuleInterop": true, "module": "commonjs"

  2. 패키지를 Import 합니다.오타가 있는 json

    import * as pack from '../package.json';

타이프 스크립트는 다음과 같이 할 수 있어야 합니다.

import * as pack from "../package.json"

// access name and version like this:

console.log(pack.name);

Support( 「 」 )는, 「 」를 참조해 주세요.
httpsblogs.msdn.microsoft.com/typescript/2018/05/31/announcing-typescript-2-9/ #blogs.msdn.microsoft.com/typescript/2018/05/31/announcing-typescript-2-9/ #

언급URL : https://stackoverflow.com/questions/50822310/how-to-import-package-json-in-typescript

반응형