你能在客户端代码中使用Require函数吗?

时间:2016-02-27 14:51:37

标签: javascript node.js

在查找时,我得到的最常见的答案是使用RequireJS

由于我是在Node环境中开发的,所以我首先查看了他们的Use with Node部分,并使用npm install requirejs安装了包,并正确安装了所有文件。

其使用部分的第一行显示以下代码行: var requirejs = require('requirejs');

当放入这行代码时,我得到的错误是我一直试图解决的问题Error: require is not defined

我在这一点上确信我在这里错过了一些东西。我虽然RequireJS的意思是允许你在本地使用require()函数?

我只是想在我的一个控制器中加入.js。有没有简单有效的方法呢?

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

看看Browserify。我认为这就是你要找的东西。

它允许您在客户端使用require('module'),就像在Nodejs代码中一样。

您可以按照以下步骤使用它:

1)安装Nodejs
2)使用npm install browserify -g --save-dev获取Browserify 3)使用require()编写你的js,如下例

main.js

var $=require('jquery');
$('#test').text('browserify working');

的index.html

<body>
<p id='test'></p>
<script type='text/javascript' src='bundle.js'></script>
</body>

4)使用jquery获取npm install jquery --save 5)使用browserify main.js -o bundle.js将main.js编译为bundle.js。这里browserify将读取main.js并将其转换为浏览器无法理解的js代码,因为浏览器无法理解require()。简单来说,browserify翻译用于浏览器的js文件。
(如您所见,index.html中的脚本标记使用bundle.js作为源而不是main.js)

6)在浏览器中打开index.html。

修改
您知道,Requirejs和Browserify是不同的东西,而您用于Browserify的require()不是Requirejs。

您可以参考示例github repo here