إصدار - كيف تحصل على الإصدار من ملف package.json في تايب سكريبت؟
لقد وجدت هذا السؤال والجواب.
لقد حاولت الحصول على الإصدار من ملف package.json باستخدام:
import { version } from './package.json';
لكنه يؤدي إلى:
package.json' has unsupported extension. The only supported extensions are '.ts',
'.tsx', '.d.ts'.
الإجابة رقم 1
الطريقة التي أحب أن أفعل ذلك بها بدون الحاجة إلى webpack أو أي تبعيات أخرى هي إضافة سكربت prebuild إلى package.json يقوم بكتابة النسخة في ملف مصدر TypeScript يمكن استيراده في مكان آخر.
"scripts": {
"prebuild": "node -p \"'export const LIB_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts",
"build": "tsc",
}
يقوم هذا بتشغيل node.js مع العلم -p/--print الذي يقوم بتقييم الكود التالي:
'export const LIB_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'ويحوّل الإخراج إلى src/version.ts
ينتج عن هذا احتواء src/version.ts على:
export const LIB_VERSION = "1.0.0";يمكنك بعد ذلك ببساطة استيراد هذا واستخدامه من ملفات أخرى:
import { LIB_VERSION } from './version';من المحتمل أن ترغب في استبعاد src/version.ts من نظام التحكم بالمصدر حتى لا تملأ تغييراتها سجل التغييرات الخاص بك!
الإجابة رقم 2
إذا كنت في بيئة commonJS، فلماذا لا تستخدم ببساطة
const pj = require('./package.json')
console.log(pj.version)
تعديل
نظرًا لأنك تبدو وكأنك تستخدم webpack، فقط أضف المحمل المناسب
module: {
loaders: [
...
{test: /\.json$/, loader: 'json-loader'},
....
والذي من الواضح أنك بحاجة إلى تثبيته باستخدام npm install
