javascript等新手我想做一个纯HTML / Javascript项目。我查看了requireJS,从我读到的内容来看,在我看来,有几个项目经历了将requireJS项目切换到node / browserify项目的痛苦。
所以我想我只是从一个node / browserify项目开始。
我有限的理解是,当您浏览项目时,它基本上将依赖项与您的javascript打包在一起。
几个问题
是否只创建一个文件?
如果它创建了多个文件,那么如果多个文件依赖于同一个项目会发生什么 (如lodash)?它是否附加了所需的源代码 项目多次?
如果我使用浏览器端库,该怎么办? 作为JQuery ......在这种情况下,根据docs,似乎我 需要使用jsdom。当我浏览这个时会发生什么?是 它比仅仅使用jquery更昂贵?
答案 0 :(得分:1)
Node.js和jQuery:
Node.js和浏览器之间的一个重要区别是Node.js是just a:
它只是意味着它允许您执行javascript代码。浏览器也有自己的JS运行时来在客户端执行脚本和,另外提供一个平均值"for representing and interacting with objects in HTML, XHTML, and XML documents.",即文档对象模型(DOM)。
在Node.js中没有HTML文件,你只需要处理JS代码,因此在Node.js中使用jQuery没有任何意义,since jQuery:
通过易于使用的API在大量浏览器中运行,使HTML文档遍历和操作,事件处理,动画和Ajax变得更加简单。
<小时/> Node.js和browserify:
Node.js提供module loading system,允许您使用require
关键字包含其他模块。因此,任何包含require
代码的JS代码都无法在浏览器中执行,因为ECMA5没有内置的模块加载机制。
Browserify只是嘲笑require
关键字,并允许您在浏览器中使用它,如here所述:
Browserify使用术语条目文件来描述它将开始读取依赖图的位置,其输出称为包。
您项目的Node.js?:
由于您的项目旨在在浏览器(而不是服务器)内运行,因此无需迁移到Node.js. 但是,您可以使用Nodej来更好地维护您的项目:
在你完成测试你的模块(并编译了你的coffeescript!)后,你只需要浏览器创建你的main.bundle.js
,然后在生产中将其导入:
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="main.bundle.js"></script>