Nodejs Vows写测试提示Cannot find module 'vows'
Nodejs Vows写测试提示Cannot find module 'vows’
如题,最近在看George Ornbo的Node.js入门经典,遇到一些很奇怪的问题。
1.从第九章的测试,也就是用console.error()函数时,写一个未声明的函数,下面调用这个函数,结果没有任何反应。实测本书带的代码也一样。
2.第10章讲到Vows测试,已经sudo npm install -g vows了,可运行那个例子程序时不是提示两个字符串不相等,而是提示找不到vows模块。。
3.有些人(包括我)遇到了无法安装node-inspector模块的问题,我已经找到了解决方法,就是新建一个/python2目录,然后在里面建一个软链接,将/usr/bin/里面的python2.7链接过来,然后修改PATH, export PATH="/python2:$PATH" 问题就可以解决。其实就是python2和python3的问题,这样安装模块时默认使用的就是python2了。
好了,希望大婶们可以帮助我解决。另外,本人新来的:)
Nodejs Vows写测试提示Cannot find module ‘vows’
问题描述
最近在阅读《Node.js入门经典》这本书时,遇到了一些问题。首先,在第九章中尝试使用console.error()
函数来测试未声明的函数时,发现没有任何反应。即使运行书中的示例代码也是如此。接着,在第十章学习Vows测试框架时,尽管全局安装了Vows (sudo npm install -g vows
),但在运行示例程序时却提示找不到vows
模块。
解决方案
1. 确保正确安装了Vows
首先,确保你已经在项目中正确地安装了Vows。如果你只是全局安装了Vows,可能需要在项目本地也安装一次。可以在项目根目录下运行以下命令:
npm install --save-dev vows
这会将Vows添加到你的package.json
文件中的devDependencies
部分,并安装到项目的node_modules
目录中。
2. 检查路径配置
如果仍然遇到问题,检查一下Python版本。某些情况下,Python版本冲突可能会导致模块安装失败。可以尝试创建一个软链接指向正确的Python版本,例如:
mkdir /python2
ln -s /usr/bin/python2.7 /python2/python2
export PATH="/python2:$PATH"
3. 示例代码
假设你已经成功安装了Vows,下面是一个简单的Vows测试示例:
// test.js
var vows = require('vows');
var assert = require('assert');
vows.describe('A simple test').addBatch({
'Adding two numbers': {
topic: function() {
return 1 + 1;
},
'should return 2': function(topic) {
assert.equal(topic, 2);
}
}
}).export(module);
运行该测试脚本:
vows test.js
如果一切正常,你应该会看到测试通过的信息。
总结
通过上述步骤,你应该能够解决Cannot find module 'vows'
的问题。确保在项目中正确安装了Vows,并且没有Python版本冲突。希望这些信息对你有所帮助!
表示没看过那本书… 所以楼主描述可以再详细点吧…
vows 安装在 global 的话, 可能有环境变量的问题, NODE_PATH 先确定没问题才行
/usr/bin/
是 Linux 系统下可执行文件标准的存放位置之一, 自己随便定义顶层路径也不是特别好
那本书适合现在新版的node?
根据你的描述,你遇到了Node.js中使用vows
进行测试时出现的Cannot find module 'vows'
错误。这通常是由于vows
模块没有正确安装或者路径配置有问题。以下是一些可能的解决方案:
解决方案
-
检查全局安装: 确保你已经全局安装了
vows
:sudo npm install -g vows
-
本地安装: 如果你更倾向于本地安装(推荐做法),可以在项目根目录下执行:
npm install --save-dev vows
-
检查
package.json
: 确保你的package.json
文件中有vows
依赖项,如果没有可以手动添加:"devDependencies": { "vows": "^0.8.2" }
然后运行
npm install
以确保所有依赖项都已安装。 -
路径问题: 确保你的系统环境变量设置正确。如果你遇到了Python版本冲突的问题,可以参考你提到的方法,创建符号链接来解决。
示例代码
假设你已经安装了vows
并正确设置了项目结构,你可以创建一个简单的测试文件test/example-test.js
:
var vows = require('vows');
var assert = require('assert');
vows.describe('Example Test').addBatch({
'When using Vows': {
topic: function() {
return 'hello';
},
'should return hello': function(topic) {
assert.equal(topic, 'hello');
}
}
}).export(module);
然后运行测试:
vows test/example-test.js
如果仍然遇到问题,请提供更多的日志信息或项目结构细节,以便进一步诊断问题。