improved gulpfile
This commit is contained in:
parent
159f37474d
commit
f99853529e
@ -1,5 +1,8 @@
|
|||||||
[ignore]
|
[ignore]
|
||||||
./build_node
|
./build_node
|
||||||
|
./build
|
||||||
|
./build_test
|
||||||
|
./y.js
|
||||||
|
|
||||||
[include]
|
[include]
|
||||||
./src
|
./src
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,6 +1,7 @@
|
|||||||
node_modules
|
node_modules
|
||||||
bower_components
|
bower_components
|
||||||
build
|
build
|
||||||
|
build_test
|
||||||
.directory
|
.directory
|
||||||
.c9
|
.c9
|
||||||
.codio
|
.codio
|
||||||
|
1
.jshintignore
Normal file
1
.jshintignore
Normal file
@ -0,0 +1 @@
|
|||||||
|
node_modules
|
10
.jshintrc
Normal file
10
.jshintrc
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"node": true,
|
||||||
|
|
||||||
|
"curly": true,
|
||||||
|
"latedef": true,
|
||||||
|
"quotmark": true,
|
||||||
|
"undef": true,
|
||||||
|
"unused": true,
|
||||||
|
"trailing": true
|
||||||
|
}
|
6
.validate.json
Normal file
6
.validate.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"scripts": {
|
||||||
|
"lint": "jshint ."
|
||||||
|
},
|
||||||
|
"pre-commit": ["lint", "validate", "test"]
|
||||||
|
}
|
112
gulpfile.js
112
gulpfile.js
@ -1,5 +1,42 @@
|
|||||||
/*eslint-env node */
|
/*eslint-env node */
|
||||||
|
|
||||||
|
/** Gulp Commands
|
||||||
|
|
||||||
|
gulp command* [--export ModuleType] [--name ModuleName] [--testport TestPort]
|
||||||
|
|
||||||
|
Module name (ModuleName):
|
||||||
|
Compile this to "y.js" (default)
|
||||||
|
|
||||||
|
Supported module types (ModuleType):
|
||||||
|
- amd
|
||||||
|
- amdStrict
|
||||||
|
- common
|
||||||
|
- commonStrict
|
||||||
|
- ignore (default)
|
||||||
|
- system
|
||||||
|
- umd
|
||||||
|
- umdStrict
|
||||||
|
|
||||||
|
Test port (TestPort):
|
||||||
|
Serve the tests on port 8888 (default)
|
||||||
|
|
||||||
|
Commands:
|
||||||
|
- build:
|
||||||
|
Build this library
|
||||||
|
- develop:
|
||||||
|
Watch the ./src directory.
|
||||||
|
Builds and tests the library on changes.
|
||||||
|
Starts an http-server and serves the test suite on http://127.0.0.1:8888.
|
||||||
|
- build_test:
|
||||||
|
Builds the test suite
|
||||||
|
- test:
|
||||||
|
Test this library
|
||||||
|
- lint:
|
||||||
|
Lint this library. A successful lint is required for committing to this repository!
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
var gulp = require("gulp");
|
var gulp = require("gulp");
|
||||||
var sourcemaps = require("gulp-sourcemaps");
|
var sourcemaps = require("gulp-sourcemaps");
|
||||||
var babel = require("gulp-babel");
|
var babel = require("gulp-babel");
|
||||||
@ -7,71 +44,74 @@ var uglify = require("gulp-uglify");
|
|||||||
var minimist = require("minimist");
|
var minimist = require("minimist");
|
||||||
var eslint = require("gulp-eslint");
|
var eslint = require("gulp-eslint");
|
||||||
var jasmine = require("gulp-jasmine");
|
var jasmine = require("gulp-jasmine");
|
||||||
|
var jasmineBrowser = require("gulp-jasmine-browser");
|
||||||
var concat = require("gulp-concat");
|
var concat = require("gulp-concat");
|
||||||
|
var watch = require("gulp-watch");
|
||||||
var moduleName = "y.js";
|
|
||||||
|
|
||||||
var files = {
|
var files = {
|
||||||
y: ["src/**/*.js"],
|
y: ["src/**/*.js"],
|
||||||
lint: ["src/**/*.js", "gulpfile.js"],
|
lint: ["src/**/*.js", "gulpfile.js"],
|
||||||
tests: ["tests/**/*.js"]
|
tests: ["tests/**/*.js"],
|
||||||
|
build_test: ["build_test/y.js"]
|
||||||
};
|
};
|
||||||
|
|
||||||
var options = minimist(process.argv.slice(2), {
|
var options = minimist(process.argv.slice(2), {
|
||||||
string: "export",
|
string: ["export", "name", "testport"],
|
||||||
default: { export: "ignore" }
|
default: {
|
||||||
|
export: "ignore",
|
||||||
|
name: "y.js",
|
||||||
|
testport: "8888"
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("test", function () {
|
gulp.task("build_test", function () {
|
||||||
return gulp.src(files.y.concat(files.tests))
|
return gulp.src(files.y.concat(files.tests))
|
||||||
.pipe(sourcemaps.init())
|
.pipe(sourcemaps.init())
|
||||||
.pipe(concat(moduleName))
|
.pipe(concat(options.name))
|
||||||
.pipe(babel({
|
|
||||||
loose: "all",
|
|
||||||
modules: "common"
|
|
||||||
}))
|
|
||||||
.pipe(uglify())
|
|
||||||
.pipe(gulp.dest("build"))
|
|
||||||
.pipe(jasmine({
|
|
||||||
verbose: true,
|
|
||||||
includeStuckTrace: true
|
|
||||||
}))
|
|
||||||
.pipe(sourcemaps.write("."));
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task("build_browser", function () {
|
|
||||||
return gulp.src(files.y)
|
|
||||||
.pipe(sourcemaps.init())
|
|
||||||
.pipe(babel({
|
.pipe(babel({
|
||||||
loose: "all",
|
loose: "all",
|
||||||
modules: "ignore"
|
modules: "ignore"
|
||||||
}))
|
}))
|
||||||
.pipe(concat(moduleName))
|
.pipe(uglify())
|
||||||
|
.pipe(sourcemaps.write())
|
||||||
|
.pipe(gulp.dest("build_test"));
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task("build", function () {
|
||||||
|
return gulp.src(files.y)
|
||||||
|
.pipe(sourcemaps.init())
|
||||||
|
.pipe(concat(options.name))
|
||||||
|
.pipe(babel({
|
||||||
|
loose: "all",
|
||||||
|
modules: options.export
|
||||||
|
}))
|
||||||
.pipe(uglify())
|
.pipe(uglify())
|
||||||
.pipe(sourcemaps.write("."))
|
.pipe(sourcemaps.write("."))
|
||||||
.pipe(gulp.dest("."));
|
.pipe(gulp.dest("."));
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("build_node", function(){
|
gulp.task("test", ["build_test"], function () {
|
||||||
gulp.src(files.y)
|
return gulp.src(files.build_test)
|
||||||
.pipe(sourcemaps.init())
|
.pipe(jasmine({
|
||||||
.pipe(babel({
|
verbose: true,
|
||||||
loose: "all",
|
includeStuckTrace: true
|
||||||
modules: "common"
|
}));
|
||||||
}))
|
|
||||||
.pipe(sourcemaps.write("."))
|
|
||||||
.pipe(gulp.dest("./build_node"));
|
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("lint", function(){
|
gulp.task("lint", function(){
|
||||||
return gulp.y(files.lint)
|
return gulp.src(files.lint)
|
||||||
.pipe(eslint())
|
.pipe(eslint())
|
||||||
.pipe(eslint.format())
|
.pipe(eslint.format())
|
||||||
.pipe(eslint.failOnError());
|
.pipe(eslint.failOnError());
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("develop", function(){
|
gulp.task("develop", ["build_test", "build"], function(){
|
||||||
return gulp.watch(files.src, ["build"]);
|
gulp.src(files.build_test)
|
||||||
|
.pipe(watch(files.build_test))
|
||||||
|
.pipe(jasmineBrowser.specRunner())
|
||||||
|
.pipe(jasmineBrowser.server({port: options.testport}));
|
||||||
|
gulp.watch(files.src, ["build_test", "build"]);
|
||||||
|
return gulp.watch(files.build_test, ["test"]);
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("default", ["build"]);
|
gulp.task("default", ["build"]);
|
||||||
|
12
package.json
12
package.json
@ -4,8 +4,13 @@
|
|||||||
"description": "A framework for real-time p2p shared editing on arbitrary complex data types",
|
"description": "A framework for real-time p2p shared editing on arbitrary complex data types",
|
||||||
"main": "y.js",
|
"main": "y.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "gulp test"
|
"test": "gulp test",
|
||||||
|
"lint": "gulp lint"
|
||||||
},
|
},
|
||||||
|
"pre-commit": [
|
||||||
|
"lint",
|
||||||
|
"test"
|
||||||
|
],
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/y-js/yjs.git"
|
"url": "https://github.com/y-js/yjs.git"
|
||||||
@ -34,8 +39,11 @@
|
|||||||
"gulp-concat": "^2.5.2",
|
"gulp-concat": "^2.5.2",
|
||||||
"gulp-eslint": "^0.13.2",
|
"gulp-eslint": "^0.13.2",
|
||||||
"gulp-jasmine": "^2.0.1",
|
"gulp-jasmine": "^2.0.1",
|
||||||
|
"gulp-jasmine-browser": "^0.1.3",
|
||||||
"gulp-sourcemaps": "^1.5.2",
|
"gulp-sourcemaps": "^1.5.2",
|
||||||
"gulp-uglify": "^1.2.0",
|
"gulp-uglify": "^1.2.0",
|
||||||
"minimist": "^1.1.1"
|
"gulp-watch": "^4.2.4",
|
||||||
|
"minimist": "^1.1.1",
|
||||||
|
"precommit-hook": "^2.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,18 @@
|
|||||||
/* @flow */
|
/* @flow */
|
||||||
|
/* global Buffer */
|
||||||
|
|
||||||
class Buffer {
|
class Buffer { //eslint-disable-line no-unused-vars
|
||||||
i : number;
|
i : number;
|
||||||
constructor () {
|
constructor () {
|
||||||
this.i = 4;
|
this.i = 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function add(x : string){
|
function add(x : string){
|
||||||
return x + 4;
|
return x + 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
add("5");
|
add("5");
|
||||||
|
add("6");
|
||||||
|
2
src/y.js
2
src/y.js
@ -1,4 +1,4 @@
|
|||||||
/* @flow */
|
/* @flow */
|
||||||
/* global Buffer */
|
/* global Buffer */
|
||||||
|
|
||||||
var buffer = new Buffer(3);
|
export default Buffer;
|
||||||
|
@ -3,6 +3,6 @@
|
|||||||
|
|
||||||
describe("A suite", function() {
|
describe("A suite", function() {
|
||||||
it("contains spec with an expectation", function() {
|
it("contains spec with an expectation", function() {
|
||||||
expect(new Buffer(3)).toBe(true);
|
expect(true).toBe(true);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
32
y.js
32
y.js
@ -1,30 +1,2 @@
|
|||||||
/* @flow */
|
"use strict";function _classCallCheck(e,a){if(!(e instanceof a))throw new TypeError("Cannot call a class as a function")}function add(e){return e+4}exports.__esModule=!0;var Buffer=function e(){_classCallCheck(this,e),this.i=4};add("5"),add("6");var buffer=new Buffer(3);exports["default"]=Buffer,module.exports=exports["default"];
|
||||||
|
//# sourceMappingURL=y.js.map
|
||||||
"use strict";
|
|
||||||
|
|
||||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
||||||
|
|
||||||
var Buffer = function Buffer() {
|
|
||||||
_classCallCheck(this, Buffer);
|
|
||||||
};
|
|
||||||
|
|
||||||
function add(x) {
|
|
||||||
return x + 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
add("5");
|
|
||||||
|
|
||||||
/* @flow */
|
|
||||||
/* global Buffer */
|
|
||||||
|
|
||||||
var buffer = new Buffer(3);
|
|
||||||
|
|
||||||
/* @flow */
|
|
||||||
/*eslint-env node, jasmine */
|
|
||||||
|
|
||||||
describe("A suite", function () {
|
|
||||||
it("contains spec with an expectation", function () {
|
|
||||||
throw new Error("dtrn");
|
|
||||||
expect(new Buffer()).toBe(true);
|
|
||||||
});
|
|
||||||
});
|
|
1
y.js.map
Normal file
1
y.js.map
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"sources":["y.js","Buffer.js"],"names":["_classCallCheck","instance","Constructor","TypeError","add","x","exports","__esModule","Buffer","this","i","buffer","module"],"mappings":"AAEA,YAIA,SAASA,iBAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCCIhH,QAAAC,KAAAC,GACA,MAAAA,GAAA,EDPAC,QAAQC,YAAa,CAIrB,ICNAC,QAEA,QAFAA,KDOER,gBAAgBS,KCPlBD,GAGAC,KAAAC,EAAA,EAUAN,KAAA,KACAA,IAAA,IDbA,IAAAO,QAAA,GAAAH,QAAA,EAuBAF,SAAQ,WArBRE,OAsBAI,OAAON,QAAUA,QAAQ","file":"y.js","sourcesContent":["/* @flow */\n/* global Buffer */\n\nvar buffer = new Buffer(3);\n\nexport default Buffer\n","/* @flow */\n\nclass Buffer {\n i : number;\n constructor () {\n this.i = 4;\n }\n}\n\n\nfunction add(x : string){\n return x + 4;\n}\n\n\nadd(\"5\");\nadd(\"6\");\n"],"sourceRoot":"/source/"}
|
Loading…
x
Reference in New Issue
Block a user