【发布时间】:2018-11-29 22:45:27
【问题描述】:
我在我的项目中使用 requirejs,每个模块都有一个 js 文件,使用 require 调用来使用库/组件。以下是示例代码:-
require(["modernizr",
"jquery",
"bootstrap",
"handlebars",
"bootstrap-table",
], function(modernizr, $, bootstrap, Handlebars, bootstrapTable) {
$(document).on('click', '#searchBtn', function(e){
search();
});
$('#table').bootstrapTable({
classes: 'table table-no-bordered',
striped: true,
iconsPrefix: 'fa',
responsive: true,
responsiveBreakPoint: 768,
responsiveClass: "bootstrap-table-cardview",
undefinedText: "",
showFooter: true,
columns: columns(),
data: data(),
});
}
我想在页面加载时尽量减少浏览器中的 js 调用次数。
(我知道 r.js,但想避免它,因为它需要我更改我的项目文件夹结构)
所以我正在考虑使用 grunt 连接和缩小所有库/组件 js 文件,如 jquery、bootstrap 等,然后在模块特定文件中使用它们。
如果我这样做了,我想知道如何使用 require 包含相同的内容,并且能够像现在使用的那样使用 jquery($) 和 bootstrapTable?
我尝试了以下方法,但它似乎不起作用:-
require(["mainjs"], function(mainjs) {
mainjs(document).on('click', '#searchBtn', function(e){
search();
});
mainjs('#table').mainjs({
classes: 'table table-no-bordered',
striped: true,
iconsPrefix: 'fa',
responsive: true,
responsiveBreakPoint: 768,
responsiveClass: "bootstrap-table-cardview",
undefinedText: "",
showFooter: true,
columns: columns(),
data: data(),
});
}
以下是我的项目结构:-
my-proj
build
src
app
components
selectpicker
selectpicker.hbs
selectpicker.js
selectpicker.less
calendar
calendar.hbs
calendar.js
calendar.less
...
...
...
page
homepage
homepage.html
homepage.js
transacations
transactions.html
transactions.js
...
...
...
assets
images
js
jquery.js
modernizr.js
handlebar.js
require.js
bootstrap.js
moment.js
...
...
...
less
Gruntfile.js
package.json
【问题讨论】:
标签: javascript requirejs r.js almond grunt-requirejs