用gulp构建一个项目,需要JS搞砸
Build a project with gulp and requireJS mess up
我拼命地尝试使用gulp和requireJS编译一个项目。该项目在AMD模块上运行良好,并且在开发环境中需要JS。相对于这个主题,我尝试使用 requireJS 优化器(第三个答案)我所拥有的只是
requirejs task failed {"originalError":{}}
你可以在这里找到我的项目
这是一个无需浏览项目即可提供帮助的屏幕
项目
使用 devDoc 生成项目 js 文件依赖项
编辑:
这是代码
古尔普文件.js
(function () {
'use strict';
var gulp = require('gulp'),
bower = require('gulp-bower'),
requirejs = require('requirejs'),
requirejsConfig = {
baseUrl : './lib',
name : 'index',
// optimizeCss : "none",
optimize : "uglify",
// removeCombined: true,
// wrap : true,
mainConfigFile: './app/main.js',
out : './dist/app.js'
};
// fail with "requirejs task failed {"originalError":{}}"
gulp.task('requirejs', function (taskReady) {
requirejs.optimize(requirejsConfig, function () {
taskReady();
}, function (error) {
console.error('requirejs task failed', JSON.stringify(error));
process.exit(1);
});
});
gulp.task('bower', function() {
return bower({cmd: 'update'})
.pipe(gulp.dest('lib/vendor'));
});
gulp.task('default', ['bower']);
}());
主.js
require(
['jquery', 'message', 'forms', 'websocket', 'user', 'chat', 'bootstrap'],
function ($, Message, FormsManager, WebsocketManager, User, ChatManager) {
'use strict';
var message = new Message(),
forms = new FormsManager(message),
user = new User(message, forms),
websocket = new WebsocketManager(message, user),
chat = new ChatManager(message, websocket, user, forms);
// Bind WebSocket server callbacks
websocket.addCallback(message.settings.serviceName, message.parseWebsocketData, message);
// Make it global to develop
window.WebsocketManager = websocket;
window.ChatManager = chat;
}
);
我使用这些配置文件成功构建了该项目
应用.js
requirejs.config({
"paths": {
"bootstrap" : "lib/vendor/bootstrap",
"bootstrap-select": "lib/vendor/bootstrap-select",
"bootstrap-switch": "lib/vendor/bootstrap-switch",
"domReady" : "lib/vendor/domReady",
"jquery" : "lib/vendor/jquery",
"lodash" : "lib/vendor/lodash",
"require" : "lib/vendor/require",
"chat" : "lib/chat",
"forms" : "lib/forms",
"message" : "lib/message",
"user" : "lib/user",
"websocket" : "lib/websocket"
},
"shim" : {
"bootstrap" : {
"deps": ['jquery']
},
"bootstrap-select" : {
"deps": ['bootstrap']
},
"bootstrap-switch" : {
"deps": ['bootstrap']
}
}
// ...
});
requirejs(['main']);
app.build.js
({
name: "app.js",
mainConfigFile: 'app.js',
out: "../dist/app.js",
optimize: "uglify2",
preserveLicenseComments: false,
generateSourceMaps: true,
optimizeAllPluginResources: true, // usefull ?
findNestedDependencies: true,
wrap: true,
include: ["lib/vendor/require.js"]
})
古尔普文件.js
(function () {
'use strict';
var gulp = require('gulp'),
bower = require('gulp-bower'),
mainBowerFiles = require('main-bower-files'),
del = require('del'),
shell = require('gulp-shell');
gulp.task('build', shell.task('node ./node_modules/requirejs/bin/r.js -o app.build.js'));
gulp.task('bower_install', function () {
return bower();
});
gulp.task('bower_move', ['bower_install'], function () {
return gulp.src(mainBowerFiles()).pipe(gulp.dest('lib/vendor'));
});
gulp.task('bower_clean', ['bower_move'], function () {
del(['lib/vendor/*', '!lib/vendor/*.js']);
});
gulp.task('default', ['bower_install', 'bower_move', 'bower_clean']);
}());
这是一项艰巨的任务,使用 gulp 自动执行此任务也有点困难 也许我只是一个菜鸟,但构建这个项目非常困难。我希望它能帮助某人节省宝贵的时间。
相关文章:
- 我需要为我的朋友在这个项目上提供帮助
- jquery未加载.我需要帮助将jquery添加到我的项目中.它没有加载javascript文件
- 列表视图添加另一个不需要的页面项目
- 需要一种方法来系统地处理NodeJS项目中的错误/异常/拒绝
- jQuery UI Accordian.我需要激活新添加的项目
- 我的backbone.js项目是否需要文件上的组件,或者这只是一种约定
- ExtJS 需要很长时间来渲染项目
- Cordova/phonegap项目中的“需要”异常
- 我是否需要在设置项目之前从本地存储中删除项目
- 需要在 JavaScript 中调用一个方法,当在 SharePoint 日历中单击更多项目旁边的三角形符号时
- 主干项目视图需要将 HTML 放入选项卡中
- 用gulp构建一个项目,需要JS搞砸
- 我需要一个条形码扫描仪,包括在我的电话间隙项目
- 第二次运行节点项目需要很长时间才能加载(在Windows 10上)
- 推荐Go项目结构和构建系统,用于具有需要编译的静态资产的项目
- 我需要做些什么才能让账户进入我的流星项目工作
- 需要用JavaScript统计HTML页面上的某些项目
- Javascript jQuery在调查中需要的项目
- 我需要在jquery帮助,使数组的项目名称
- 需要帮助加载KML -这是我的第一个谷歌地图项目