我知道我们可以将requirejs组合文件合并到一个js文件中。 如下面的配置。
module.exports = {
baseUrl: 'js/',
mainConfigFile: 'src/js/common.js',
dir: 'scripts/',
optimize: 'uglify2',
modules: [
{
name: 'common',
include: [
'jquery',
]
}
]
};
我的结果是一个文件
common.js
----------------
jquery.js
modernizr.js
common.js
我的问题是,我们是否还需要在scripts
文件夹中放置require.js文件并使用以下格式
<script data-main="scripts/common" src="scripts/require.js"></script>
或者我们可以使用
<script src="scripts/common.js"></script>
将文件压缩成一个文件?
答案 0 :(得分:2)
您仍然需要加载require.js
通常的方式来实际使用它提供的模块加载优势,特别是如果您经常使用异步功能。但是,您可以查看almond,前提是您的代码使用AMD和(from the README):
- 将所有模块优化为一个文件 - 无动态代码加载。
- 所有模块在其define()调用中都有ID和依赖关系数组 - RequireJS优化器会为您处理这个问题。
- 只有一个 requirejs.config()或require.config()调用。
- 请勿使用RequireJS multiversion support/contexts。
- 请勿使用require.toUrl()或require.nameToUrl()。
- 不要使用packages/packagePaths config。如果你需要 使用具有主要属性的包, volo可以创建适配器模块 没有这个配置它可以工作。使用
amdify add
命令 将依赖项添加到项目中。
杏仁很棒,因为它根本不需要require.js
;它自己包装了你自己的代码,这是一个非常小的AMD加载器框架,远不及主库那么强大。然后,您将获得一个可以直接在HTML中链接的优化文件:
<script src="scripts/common.js"></script>
almond的Gruntfile配置可能如下所示:
compile: {
options: {
name: 'path/to/almond',
baseUrl: 'js',
include: ['main'],
insertRequire: ['main'],
mainConfigFile: 'scripts/config.js',
out: 'scripts/main.js',
optimizeAllPluginResources: true,
wrap: true
}
}
以上是所有标准r.js样板文件,您可以在杏仁主页上找到更多示例。