Introducing gulp.
This commit is contained in:
parent
e1906035ca
commit
9798e1007e
@ -1,3 +1,5 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- "0.12"
|
||||
before_install:
|
||||
- npm install -g gulp-cli
|
||||
|
15
README.md
15
README.md
@ -39,7 +39,7 @@ PDF.js is built into version 19+ of Firefox, however the extension is still avai
|
||||
|
||||
+ The official extension for Chrome can be installed from the [Chrome Web Store](https://chrome.google.com/webstore/detail/pdf-viewer/oemmndcbldboiebfnladdacbdfmadadm).
|
||||
*This extension is maintained by [@Rob--W](https://github.com/Rob--W).*
|
||||
+ Build Your Own - Get the code as explained below and issue `node make chromium`. Then open
|
||||
+ Build Your Own - Get the code as explained below and issue `gulp chromium`. Then open
|
||||
Chrome, go to `Tools > Extension` and load the (unpackaged) extension from the
|
||||
directory `build/chromium`.
|
||||
|
||||
@ -51,16 +51,19 @@ To get a local copy of the current code, clone it using git:
|
||||
$ cd pdf.js
|
||||
|
||||
Next, install Node.js via the [official package](http://nodejs.org) or via
|
||||
[nvm](https://github.com/creationix/nvm). If everything worked out, run
|
||||
[nvm](https://github.com/creationix/nvm). You need to install the gulp package
|
||||
globally (see also [gulp's getting started](https://github.com/gulpjs/gulp/blob/master/docs/getting-started.md#getting-started)):
|
||||
|
||||
$ npm install -g gulp-cli
|
||||
|
||||
If everything worked out, install all dependencies for PDF.js:
|
||||
|
||||
$ npm install
|
||||
|
||||
to install all dependencies for PDF.js.
|
||||
|
||||
Finally you need to start a local web server as some browsers do not allow opening
|
||||
PDF files using a file:// URL. Run
|
||||
|
||||
$ node make server
|
||||
$ gulp server
|
||||
|
||||
and then you can open
|
||||
|
||||
@ -75,7 +78,7 @@ It is also possible to view all test PDF files on the right side by opening
|
||||
In order to bundle all `src/` files into two productions scripts and build the generic
|
||||
viewer, issue:
|
||||
|
||||
$ node make generic
|
||||
$ gulp generic
|
||||
|
||||
This will generate `pdf.js` and `pdf.worker.js` in the `build/generic/build/` directory.
|
||||
Both scripts are needed but only `pdf.js` needs to be included since `pdf.worker.js` will
|
||||
|
103
gulpfile.js
Normal file
103
gulpfile.js
Normal file
@ -0,0 +1,103 @@
|
||||
/* Copyright 2016 Mozilla Foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
/* jshint node:true */
|
||||
/* globals target */
|
||||
|
||||
'use strict';
|
||||
|
||||
var gulp = require('gulp');
|
||||
var gutil = require('gulp-util');
|
||||
var stream = require('stream');
|
||||
|
||||
require('./make.js');
|
||||
|
||||
function createStringSource(filename, content) {
|
||||
var source = stream.Readable({ objectMode: true });
|
||||
source._read = function () {
|
||||
this.push(new gutil.File({
|
||||
cwd: '',
|
||||
base: '',
|
||||
path: filename,
|
||||
contents: new Buffer(content)
|
||||
}));
|
||||
this.push(null);
|
||||
};
|
||||
return source;
|
||||
}
|
||||
|
||||
gulp.task('default', function() {
|
||||
console.log('Available tasks:');
|
||||
var tasks = Object.keys(gulp.tasks);
|
||||
tasks.sort();
|
||||
tasks.forEach(function (taskName) {
|
||||
console.log(' ' + taskName);
|
||||
});
|
||||
});
|
||||
|
||||
gulp.task('server', function () {
|
||||
console.log();
|
||||
console.log('### Starting local server');
|
||||
|
||||
var WebServer = require('./test/webserver.js').WebServer;
|
||||
var server = new WebServer();
|
||||
server.port = 8888;
|
||||
server.start();
|
||||
});
|
||||
|
||||
gulp.task('makefile', function () {
|
||||
var makefileContent = 'help:\n\tgulp\n\n';
|
||||
var targetsNames = [];
|
||||
for (var i in target) {
|
||||
makefileContent += i + ':\n\tgulp ' + i + '\n\n';
|
||||
targetsNames.push(i);
|
||||
}
|
||||
makefileContent += '.PHONY: ' + targetsNames.join(' ') + '\n';
|
||||
return createStringSource('Makefile', makefileContent)
|
||||
.pipe(gulp.dest('.'));
|
||||
});
|
||||
|
||||
// Getting all shelljs registered tasks and register them with gulp
|
||||
var gulpContext = false;
|
||||
for (var taskName in global.target) {
|
||||
if (taskName in gulp.tasks) {
|
||||
continue;
|
||||
}
|
||||
|
||||
var task = (function (shellJsTask) {
|
||||
return function () {
|
||||
gulpContext = true;
|
||||
try {
|
||||
shellJsTask.call(global.target);
|
||||
} finally {
|
||||
gulpContext = false;
|
||||
}
|
||||
};
|
||||
})(global.target[taskName]);
|
||||
gulp.task(taskName, task);
|
||||
}
|
||||
|
||||
Object.keys(gulp.tasks).forEach(function (taskName) {
|
||||
var oldTask = global.target[taskName] || function () {
|
||||
gulp.run(taskName);
|
||||
};
|
||||
|
||||
global.target[taskName] = function () {
|
||||
// The require('shelljs/make') import in make.js will try to execute tasks
|
||||
// listed in arguments, guarding with gulpContext
|
||||
if (gulpContext) {
|
||||
oldTask.call(global.target);
|
||||
}
|
||||
};
|
||||
});
|
22
make.js
22
make.js
@ -1477,15 +1477,8 @@ target.mozcentralcheck = function() {
|
||||
//
|
||||
// make server
|
||||
//
|
||||
target.server = function() {
|
||||
cd(ROOT_DIR);
|
||||
echo();
|
||||
echo('### Starting local server');
|
||||
|
||||
var WebServer = require('./test/webserver.js').WebServer;
|
||||
var server = new WebServer();
|
||||
server.port = 8888;
|
||||
server.start();
|
||||
target.server = function () {
|
||||
exit(exec('gulp server'));
|
||||
};
|
||||
|
||||
//
|
||||
@ -1529,15 +1522,8 @@ target.clean = function() {
|
||||
//
|
||||
// make makefile
|
||||
//
|
||||
target.makefile = function() {
|
||||
var makefileContent = 'help:\n\tnode make\n\n';
|
||||
var targetsNames = [];
|
||||
for (var i in target) {
|
||||
makefileContent += i + ':\n\tnode make ' + i + '\n\n';
|
||||
targetsNames.push(i);
|
||||
}
|
||||
makefileContent += '.PHONY: ' + targetsNames.join(' ') + '\n';
|
||||
makefileContent.to('Makefile');
|
||||
target.makefile = function () {
|
||||
exit(exec('gulp makefile'));
|
||||
};
|
||||
|
||||
//
|
||||
|
@ -2,6 +2,8 @@
|
||||
"name": "pdf.js",
|
||||
"version": "0.8.0",
|
||||
"devDependencies": {
|
||||
"gulp": "^3.9.1",
|
||||
"gulp-util": "^3.0.7",
|
||||
"jsdoc": "^3.3.0-alpha9",
|
||||
"jshint": "~2.8.0",
|
||||
"node-ensure": "^0.0.0",
|
||||
@ -14,7 +16,7 @@
|
||||
"yargs": "^3.14.0"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "node make lint"
|
||||
"test": "gulp lint"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
Loading…
Reference in New Issue
Block a user