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了。

好了,希望大婶们可以帮助我解决。另外,本人新来的:)


4 回复

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模块没有正确安装或者路径配置有问题。以下是一些可能的解决方案:

解决方案

  1. 检查全局安装: 确保你已经全局安装了vows

    sudo npm install -g vows
    
  2. 本地安装: 如果你更倾向于本地安装(推荐做法),可以在项目根目录下执行:

    npm install --save-dev vows
    
  3. 检查package.json: 确保你的package.json文件中有vows依赖项,如果没有可以手动添加:

    "devDependencies": {
      "vows": "^0.8.2"
    }
    

    然后运行npm install以确保所有依赖项都已安装。

  4. 路径问题: 确保你的系统环境变量设置正确。如果你遇到了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

如果仍然遇到问题,请提供更多的日志信息或项目结构细节,以便进一步诊断问题。

回到顶部