2
我想了解是否有任何潛在的缺點,我使用requirejs的方式。我使用CommonJS的語法的風扇,一個典型的模塊將是這樣的:RequireJS - 與定義vs要求的性能差異
define(function(require) {
"use strict";
var Backbone = require('backbone');
var Templates = require('templates');
var User = require('accounts/models').User;
...
我然後編譯我的應用程序到一個單一的JS文件。我構建的配置看起來像這樣:
name: 'main',
mainConfigFile: '<%= build_dir %>/<%= main_app %>',
out: '<%= build_dir %>/app.min.js',
optimize: 'none',
include: ['main'],
insertRequire: ['main'],
almond:true,
cjsTranslate: true,
findNestedDependencies: true,
preserveLicenseComments: false
我的問題是,是否使用這種格式CommonJS的姿勢,我會避開如果使用的是定義數組,而不是任何性能或優化的問題是什麼?據我瞭解,cjsTranslate參數無論如何都將其轉換爲定義調用,但我不確定是否有某些我丟失的東西?它純粹是一個偏好/代碼可讀性的東西?
僅供參考,我的配置文件(main.js):
require.config({
paths: {
// Libraries
jquery: '../../vendor/jquery/jquery',
underscore: '../../vendor/underscore/underscore',
backbone: '../../vendor/backbone/backbone',
handlebars: '../../vendor/handlebars.js/dist/handlebars',
modernizr: '../../vendor/modernizr/modernizr',
templates: '../templates'
},
shim: {
"underscore":{
exports: "_"
},
"backbone": {
deps: ["underscore", "jquery", "modernizr", "moment"],
exports: "Backbone"
},
"handlebars": {
exports: "Handlebars"
}
}
});