将Require.js与外部连接工具一起使用

时间:2014-01-26 14:27:22

标签: requirejs yui-compressor

目前,我使用YUI-compressor来连接和压缩我的所有JavaScript文件。但是,出于各种原因,我想开始使用Require.js。

在开发中,文件没有连接,所以我可以使用默认的require(filepath)define(modulename)和Require.js。但是我如何处理这样一个事实:在生产中,YUI会压缩所有文件,从而使requires中的所有文件路径无效?

假设我有一个main.js需要module1.js。这就是我想要做的事情:

开发

require('path-to-module1')... // main.js
define('module1', function()})... // module1.js

生产

require('module1')... // main.js. here though, module1 and main.js are combined.
define('module1')... // yeah, still same file.

1 个答案:

答案 0 :(得分:1)

最好使用和AMD优化器(例如r.js)来连接文件。然后你也可以用r.js缩小,或者你可以用YUI-comressor来缩小。

在此处了解有关r.js优化器的更多信息http://requirejs.org/docs/optimization.html

并查看此repo以获取有关如何使用Require.js以及如何优化它https://github.com/volojs/create-template的良好示例项目。克隆该repo后可以运行node tools/r.js -o tools/build.js以查看优化程序的运行情况 - 它会将www中的所有js文件合并到一个文件中。

最后,你永远不应该命名你的模块,比如

define('module1', [], function () {});

始终使用这样的匿名模块:

define(["jquery"], function ($) {});

define(function (require) { var $ = require("jquery"); });

AMD优化器将为您使用您的模块名称,以便它们都可以存放在一个文件中,但您不必担心这一点。

希望这有帮助。