软件包 - json - from - dist
有时你想加载 package.json 进入您的
TypeScript 程序, 它的诱惑只是 import '../package.json',因为这似乎工作.
然而,这需要 tsc 来制作你所有
package.json 文件输入 dist 文件夹,如果
你用的东西像
hy,使用
package.json 用于其他目的。 即使这样
它要求模块系统多做一些
fs系统调用,只是装入一个版本号或什么的. (见
这个问题. ) (中文(简体) )
这个模块通过找到软件包来帮助。 json 文件 以最正常的方式阅读和解析 时尚.
洞穴
这个 仅限 如果您的代码构建到一个名为目标文件夹中, 则有效
dist,这是包的根。 这还要求
您没有命名的文件夹 node_modules 任何地方
否则它会得到错误的答案
在这里。 (但至少,这是在dev, 所以你很可能
通知。 )
如果你建到别的地方 那你需要换个地方 办法。 (感觉可以自由 叉出这个模块 并使之成为自己的,或 只要把代码放进去,就没什么了。 )
用户
// src/index.ts
import {
findPackageJson,
loadPackageJson,
} from 'package-json-from-dist'
const pj = findPackageJson(import.meta.url)
console.log(`package.json found at ${pj}`)
const pkg = loadPackageJson(import.meta.url)
console.log(`Hello from ${pkg.name}@${pkg.version}`)
如果您的模块不是直接在 ./src 文件夹,然后需要
以指定您希望找到的路径
package.json 当它 没有 建造到 dist 文件夹.
// src/components/something.ts
import {
findPackageJson,
loadPackageJson,
} from 'package-json-from-dist'
const pj = findPackageJson(import.meta.url, '../../package.json')
console.log(`package.json found at ${pj}`)
const pkg = loadPackageJson(import.meta.url, '../../package.json')
console.log(`Hello from ${pkg.name}@${pkg.version}`)
从CommonJS运行时,请使用 __filename 改为
import.meta.url。 。 。 .
// src/index.cts
import {
findPackageJson,
loadPackageJson,
} from 'package-json-from-dist'
const pj = findPackageJson(__filename)
console.log(`package.json found at ${pj}`)
const pkg = loadPackageJson(__filename)
console.log(`Hello from ${pkg.name}@${pkg.version}`)
自兹 hy 正在建设 两者
默认情况下,普通JS和无害环境管理,您可能会发现您需要
普通JS 覆盖和一些 //@ts-ignore 魔能令其通达.
src/pkg.ts数字 :
import {
findPackageJson,
loadPackageJson,
} from 'package-json-from-dist'
//@ts-ignore
export const pkg = loadPackageJson(import.meta.url)
//@ts-ignore
export const pj = findPackageJson(import.meta.url)
src/pkg-cjs.cts数字 :
import {
findPackageJson,
loadPackageJson,
} from 'package-json-from-dist'
export const pkg = loadPackageJson(__filename)
export const pj = findPackageJson(__filename)