检查模块版本
Check module version
我需要检查模块是否是某个版本。
我可以通过这样做检查模块是否存在在同一文件夹中:
var other;
try {
other = require("../theOtherModule");
} catch(e){
// module doesn't exist or something
}
但是,这并没有告诉我该模块的版本。我需要能够判断该模块是某个版本还是更高版本。
我认为没有内置函数可以做到这一点。相反,您可以从 package.json 文件中获取版本:
var packageJson = require('./package.json');
console.log(packageJson.version);
最简单的方法是让你的模块导出它的版本,以便其他东西可以读取它。
其他模块.js
exports.version = require('./package').version;
然后使用 semver
模块,例如,假设您需要的版本2.x
,但package.json
依赖项列表中可能具有的任何版本字符串都可以使用。
var semver = require('semver');
var other;
try {
other = require("../theOtherModule");
} catch(e){
// module doesn't exist or something
}
if (!semver.satisfies(other.VERSION, '2.x')){
// Do whatever you need to do if the version isn't supported.
}
也就是说,重要的是要意识到您实际上是在这里重复npm
的工作,这可能指向节点模块系统的不正确使用。在版本控制至关重要的情况下,最好有一个内部npm
注册表,然后theOtherModule
只是一个实际的npm
依赖项。
相关文章:
- Javascript,访问一个主要对象模块模式中的每个对象
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 如何从模块链中调用函数.导出到节点中
- 尽管链接成功并已成功下载,但未找到NPM模块
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- JS编译器/包管理器,用于版本控制
- jQuery-2.1.1.min.js或最新版本jQuery-2.13.min.js不会't支持'@
- Chrome加载旧版本的Javascript文件
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- 检查模块版本
- 使用Grunt管理AngularJS模块的版本和发布
- 版本0.9.0的UI.引导模块未捕获错误
- 私有NPM:如何安装模块的最新版本
- 如何有模块化的细节-模板的旧版本的KendoUI网格
- 为什么Yarn说“发现不兼容的模块”?当版本正确时
- Javascript在单元测试中用模拟版本修补现有的外部依赖模块方法
- Node.js请求模块获取网站的现代版本
- Node.js:确定手动安装的模块和package.json的版本号
- 如何使用我自己的jQuery版本与浏览器化模块
- 比较本地节点模块版本与包版本.json版本