初始化
This commit is contained in:
109
uni_modules/UniDevTools/node_modules/local-pkg/index.cjs
generated
vendored
Normal file
109
uni_modules/UniDevTools/node_modules/local-pkg/index.cjs
generated
vendored
Normal file
@@ -0,0 +1,109 @@
|
||||
const { dirname, join } = require('path')
|
||||
const { existsSync, readFileSync } = require('fs')
|
||||
const fs = require('fs').promises
|
||||
const { loadPackageJSON, isPackageListed } = require('./dist/shared.cjs')
|
||||
|
||||
function resolveModule(name, options) {
|
||||
try {
|
||||
return require.resolve(name, options)
|
||||
}
|
||||
catch (e) {
|
||||
return undefined
|
||||
}
|
||||
}
|
||||
|
||||
function importModule(path) {
|
||||
const mod = require(path)
|
||||
if (mod.__esModule)
|
||||
return Promise.resolve(mod)
|
||||
else
|
||||
return Promise.resolve({ default: mod })
|
||||
}
|
||||
|
||||
function isPackageExists(name, options) {
|
||||
return !!resolvePackage(name, options)
|
||||
}
|
||||
|
||||
function getPackageJsonPath(name, options) {
|
||||
const entry = resolvePackage(name, options)
|
||||
if (!entry)
|
||||
return
|
||||
return searchPackageJSON(entry)
|
||||
}
|
||||
|
||||
async function getPackageInfo(name, options) {
|
||||
const packageJsonPath = getPackageJsonPath(name, options)
|
||||
if (!packageJsonPath)
|
||||
return
|
||||
|
||||
const pkg = JSON.parse(await fs.readFile(packageJsonPath, 'utf8'))
|
||||
|
||||
return {
|
||||
name,
|
||||
version: pkg.version,
|
||||
rootPath: dirname(packageJsonPath),
|
||||
packageJsonPath,
|
||||
packageJson: pkg,
|
||||
}
|
||||
}
|
||||
|
||||
function getPackageInfoSync(name, options) {
|
||||
const packageJsonPath = getPackageJsonPath(name, options)
|
||||
if (!packageJsonPath)
|
||||
return
|
||||
|
||||
const pkg = JSON.parse(readFileSync(packageJsonPath, 'utf8'))
|
||||
|
||||
return {
|
||||
name,
|
||||
version: pkg.version,
|
||||
rootPath: dirname(packageJsonPath),
|
||||
packageJsonPath,
|
||||
packageJson: pkg,
|
||||
}
|
||||
}
|
||||
|
||||
function resolvePackage(name, options = {}) {
|
||||
try {
|
||||
return require.resolve(`${name}/package.json`, options)
|
||||
}
|
||||
catch {
|
||||
}
|
||||
try {
|
||||
return require.resolve(name, options)
|
||||
}
|
||||
catch (e) {
|
||||
if (e.code !== 'MODULE_NOT_FOUND')
|
||||
throw e
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
function searchPackageJSON(dir) {
|
||||
let packageJsonPath
|
||||
while (true) {
|
||||
if (!dir)
|
||||
return
|
||||
const newDir = dirname(dir)
|
||||
if (newDir === dir)
|
||||
return
|
||||
dir = newDir
|
||||
packageJsonPath = join(dir, 'package.json')
|
||||
if (existsSync(packageJsonPath))
|
||||
break
|
||||
}
|
||||
|
||||
return packageJsonPath
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
resolveModule,
|
||||
importModule,
|
||||
isPackageExists,
|
||||
getPackageInfo,
|
||||
getPackageInfoSync,
|
||||
loadPackageJSON,
|
||||
isPackageListed,
|
||||
}
|
||||
|
||||
Object.defineProperty(module.exports, '__esModule', { value: true, enumerable: false })
|
||||
Reference in New Issue
Block a user