您可以在客户端代码中使用Require功能吗?
当寻找这件事最常见的答案,我得到的是使用RequireJS您可以在客户端代码中使用Require功能吗?
由于我在一个节点的环境我第一次看他们的Use with Node部分和安装包为开发利用npm install requirejs
概述并正确安装的所有文件。
在用法部分中的第一行显示的代码下面一行: var requirejs = require('requirejs');
当这行代码推杆,我感到我一直在试图解决这一整段时间相同的错误Error: require is not defined
我相信在这一点上,我只是在这里失去了一些东西。我虽然点RequireJS
是为了让你在本地使用require()
函数?
我只是试图在我的一个控制器中包含.js
。有没有简单或有效的方法来做到这一点?
谢谢你的时间。
看一看Browserify。我认为这是你正在寻找的。
它允许您在客户端使用require('module')
,就像您在Nodejs代码中一样。
你可以按照下面的步骤来使用它:
1)安装Nodejs
2)使用npm install browserify -g --save-dev
三送Browserify)收件使用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)使用npm install jquery --save
5)编译main.js使用browserify main.js -o bundle.js
。在这里browserify将读取main.js并将其转换成js代码该浏览器可以理解为浏览器无法理解require()
到bundle.js获取jquery
。简单来说,browserify会将js文件转换为浏览器。
(你可以看到index.html中的脚本标签使用了bundle.js作为源代替main.js)
6)在浏览器中打开index.html。
编辑
只要你知道,Requirejs和Browserify是不同的东西,并且你使用Browserify require()
不Requirejs。
可以参考示例GitHub库here
这可能看起来像一个愚蠢的问题,但'它是如何做到这一点?我的意思是,除了安装Browserify以使其起作用外,还有什么额外的工作要做?我刚刚在网站上安装了它,但我仍然遇到同样的错误。第一页上的教程使用require()函数显示它们,所以我假设它应该刚开箱即可使用? –
感谢您的更新答案。当我到达编译main.js到bundle.js的步骤时,我收到一个错误,说它无法找到正在尝试使用'require();'加载的模块我有三重检查,该模块的路径是正确的,但它仍然抛出此错误... –
你做了第4步获取jquery – Flake
“客户端代码”通常是指“在浏览器代码”;你在谈论这个,还是你在谈论Node? – Pointy
如果你想在浏览器中使用requirejs,那么遵循在Node中使用requirejs的说明不会对你有所帮助。 – Quentin
不需要。您需要使用其他的东西(Browserify,Babel等)来允许'require'按照您在浏览器中的预期工作。这两个库都会将代码转换(转换)成在浏览器中可用的东西。 –