基于Grunt项目的NPM模块

时间:2014-09-16 13:14:48

标签: javascript node.js gruntjs npm

Node有一个简单的模块加载系统,它使用require()方法调用从根文件夹中的不同位置加载模块。 例如。

var qr = require('qr-image');    

我正在尝试在 grunt 中做类似的事情,但我没有成功。

我已按以下方式将此模块添加到package.json文件中,然后在项目的根目录下运行npm install。

"devDependencies": {
    .
    .
    .

    "qr-image": "^2.0.0"
}, 

现在每当我使用require时,我都会在控制台上遇到以下错误并且我的代码中断了。

  

ReferenceError:未定义require

请建议如何在基于Grunt的项目中使用npm模块,谢谢。

1 个答案:

答案 0 :(得分:0)

require功能在网络浏览器中不可用。相反,它是nodejs的一部分,它是一种服务器端语言(例如,您可能直接从您的计算机终端运行,而不是在浏览器中运行)并用于加载该语言的依赖项。

在网络浏览器中,我通常只将我的依赖项作为附加脚本包含在页面上,例如:

<script src="path/to/my/dependency.js"></script>
<script src="path/to/my/code.js"></script>

其他一些选项包括RequireJSthis question中列出的内容,或更多适用于前端代码的通用依赖项管理器:Bower

仔细观察你的问题,“qr-image”npm依赖关系可能无法在客户端代码中工作(因为它是为了在服务器端代码中通过节点运行而构建的)。

快速搜索QR码客户端代码,提出了这个SO post,指向the QRCode.js project客户端QR代码生成 - 我没有使用它,但它看起来像一个为你正在做的工作迈出正确的方向。