在查找时,我得到的最常见的答案是使用RequireJS
由于我是在Node环境中开发的,所以我首先查看了他们的Use with Node部分,并使用npm install requirejs
安装了包,并正确安装了所有文件。
其使用部分的第一行显示以下代码行:
var requirejs = require('requirejs');
当放入这行代码时,我得到的错误是我一直试图解决的问题Error: require is not defined
我在这一点上确信我在这里错过了一些东西。我虽然RequireJS
的意思是允许你在本地使用require()
函数?
我只是想在我的一个控制器中加入.js
。有没有简单有效的方法呢?
感谢您的时间。
答案 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