gpt4 book ai didi

requirejs - 使用 Gulp 构建 requireJS 项目 - gulp-requirejs

转载 作者:行者123 更新时间:2023-12-03 11:46:26 31 4
gpt4 key购买 nike

我正在尝试使用 gulp-requirejs构建一个演示项目。我希望结果是一个包含所有 js 依赖项和模板的单个文件。这是我的 gulpfile.js

var gulp = require('gulp');
var rjs = require('gulp-requirejs');
var paths = {
scripts: ['app/**/*.js'],
images: 'app/img/**/*'
};

gulp.task('requirejsBuild', function() {
rjs({
name: 'main',
baseUrl: './app',
out: 'result.js'
})
.pipe(gulp.dest('app/dist'));

});

// The default task (called when you run `gulp` from cli)
gulp.task('default', ['requirejsBuild']);

上面的构建文件没有错误,但是 result.js 只包含 main.js 和 config.js 的内容。不包括所有 View 文件、jquery、下划线、主干。

如何配置 gulp-requirejs 将每个 js 模板放入一个 js 文件中?
如果这不是正确的方法,你能建议其他方法吗?

编辑

配置.js
require.config({
paths: {
"almond": "/bower_components/almond/almond",
"underscore": "/bower_components/lodash/dist/lodash.underscore",
"jquery": "/bower_components/jquery/dist/jquery",
"backbone": "/bower_components/backbone/backbone",
"text":"/bower_components/requirejs-text/text",
"book": "./model-book"
}
});

main.js
// Break out the application running from the configuration definition to
// assist with testing.
require(["config"], function() {
// Kick off the application.
require(["app", "router"], function(app, Router) {
// Define your master router on the application namespace and trigger all
// navigation from this instance.
app.router = new Router();

// Trigger the initial route and enable HTML5 History API support, set the
// root folder to '/' by default. Change in app.js.
Backbone.history.start({ pushState: false, root: '/' });
});
});

输出只是这两个文件的组合,这不是我所期望的。

最佳答案

更新

即使requirejs报错,我之前的回答也总是报taskReady。我重新考虑了这种方法并添加了错误日志记录。此外,我尝试按照此处 gulp-jshint: How to fail the build? 的描述使构建完全失败因为无声的失败真的会占用你的时间。
请参阅下面的更新代码。

Drew 关于黑名单的评论非常有帮助,gulp 的人建议直接使用 requirejs。所以我发布了我的直接 requirejs 解决方案:

var DIST = './dist';
var requirejs = require('requirejs');
var requirejsConfig = require('./requireConfig.js').RJSConfig;

gulp.task('requirejs', function (taskReady) {
requirejsConfig.name = 'index';
requirejsConfig.out = DIST + 'app.js';
requirejsConfig.optimize = 'uglify';
requirejs.optimize(requirejsConfig, function () {
taskReady();
}, function (error) {
console.error('requirejs task failed', JSON.stringify(error))
process.exit(1);
});
});

位于 ./dist/app.js 的文件被 build 和丑化。这样一来,gulp 就会知道 require 何时完成构建。因此,该任务可以用作依赖项。

关于requirejs - 使用 Gulp 构建 requireJS 项目 - gulp-requirejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23978361/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com