@ribajs/npm-package
Version:
Check if an npm package is installed
47 lines (41 loc) • 1.17 kB
JavaScript
const { dirname } = require("path");
const isAvailable = (moduleName) => {
// See https://yarnpkg.com/advanced/pnpapi
if (process.versions.pnp) {
const pnpApi = require("pnpapi");
const rootLocator = pnpApi.findPackageLocator("./");
const rootPgk = pnpApi.getPackageInformation(rootLocator);
// console.log("rootPgk", rootPgk)
const available = rootPgk.packageDependencies.get(moduleName);
// console.log("available", available);
if (!available) {
return false;
}
}
try {
const modulePackagePath = require.resolve(moduleName + "/package.json");
const modulePath = dirname(modulePackagePath);
return modulePath;
} catch (error) {
// console.warn(error);
return false;
}
};
const ribaPackages = [
"@ribajs/bs4",
"@ribajs/bs5",
"@ribajs/content-slider",
"@ribajs/core",
"@ribajs/iconset",
"@ribajs/i18n",
"@ribajs/leaflet-map",
"@ribajs/moment",
"@ribajs/octobercms",
"@ribajs/photoswipe",
"@ribajs/shopify",
"@ribajs/shopify-easdk",
"@ribajs/shopify-tda",
"@ribajs/artcodestudio",
];
module.exports.isAvailable = isAvailable;
module.exports.ribaPackages = ribaPackages;