diff --git a/demo/index.html b/demo/index.html
index 12f7cb98..370a51ed 100644
--- a/demo/index.html
+++ b/demo/index.html
@@ -2,8 +2,8 @@
xterm.js demo
-
-
+
+
diff --git a/demo/server.js b/demo/server.js
index 5ff9ca61..37df9916 100644
--- a/demo/server.js
+++ b/demo/server.js
@@ -11,6 +11,7 @@ function startServer() {
logs = {};
app.use('/build', express.static(__dirname + '/../build'));
+ app.use('/src', express.static(__dirname + '/../src'));
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
diff --git a/gulpfile.js b/gulpfile.js
index 9af8d6e4..bbb4d6e1 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -16,9 +16,9 @@ const ts = require('gulp-typescript');
const util = require('gulp-util');
const buildDir = process.env.BUILD_DIR || 'build';
-const tsProject = ts.createProject('tsconfig.json');
-let srcDir = tsProject.config.compilerOptions.rootDir;
-let outDir = tsProject.config.compilerOptions.outDir;
+const tsProject = ts.createProject('src/tsconfig.json');
+let srcDir = './src';
+let outDir = './lib';
const addons = fs.readdirSync(`${__dirname}/src/addons`);
@@ -61,7 +61,7 @@ gulp.task('browserify', function() {
};
let bundleStream = browserify(browserifyOptions)
.bundle()
- .pipe(source('xterm.js'))
+ .pipe(source(`xterm.js`))
.pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true, sourceRoot: '..'}))
.pipe(sourcemaps.write('./'))
@@ -136,6 +136,6 @@ gulp.task('sorcery-addons', ['browserify-addons'], function () {
})
});
-gulp.task('build', ['sorcery', 'sorcery-addons']);
+gulp.task('build', ['css', 'sorcery', 'sorcery-addons']);
gulp.task('test', ['mocha']);
gulp.task('default', ['build']);
diff --git a/package.json b/package.json
index c5fad515..946db609 100644
--- a/package.json
+++ b/package.json
@@ -38,7 +38,7 @@
"ts-loader": "^4.5.0",
"tslint": "^5.9.1",
"tslint-consistent-codestyle": "^1.13.0",
- "typescript": "3.1",
+ "typescript": "3.4",
"vinyl-buffer": "^1.0.0",
"vinyl-source-stream": "^1.1.0",
"webpack": "^4.17.1",
@@ -50,20 +50,16 @@
"start-debug": "node --inspect-brk demo/start",
"start-zmodem": "node demo/zmodem/app",
"lint": "tslint 'src/**/*.ts' './demo/**/*.ts'",
- "pretest": "npm run layering",
"test": "npm run mocha",
"posttest": "npm run lint",
"test-debug": "node --inspect-brk node_modules/.bin/gulp test",
"test-suite": "gulp mocha-suite --test",
"test-coverage": "nyc -x gulpfile.js -x '**/*test*' npm run mocha",
"mocha": "gulp test",
- "tsc": "tsc",
- "prebuild": "concurrently --kill-others-on-fail --names \"lib,attach,fit,fullscreen,search,terminado,webLinks,winptyCompat,zmodem,css\" \"tsc\" \"tsc -p ./src/addons/attach\" \"tsc -p ./src/addons/fit\" \"tsc -p ./src/addons/fullscreen\" \"tsc -p ./src/addons/search\" \"tsc -p ./src/addons/terminado\" \"tsc -p ./src/addons/webLinks\" \"tsc -p ./src/addons/winptyCompat\" \"tsc -p ./src/addons/zmodem\" \"gulp css\"",
+ "prebuild": "tsc -b ./src/tsconfig.all.json",
"build": "gulp build",
"prepublish": "npm run build",
"coveralls": "nyc report --reporter=text-lcov | coveralls",
- "watch": "concurrently --kill-others-on-fail --names \"lib,css\" \"tsc -w\" \"gulp watch-css\"",
- "watch-addons": "concurrently --kill-others-on-fail --names \"attach,fit,fullscreen,search,terminado,webLinks,winptyCompat,zmodem\" \"tsc -w -p ./src/addons/attach\" \"tsc -w -p ./src/addons/fit\" \"tsc -w -p ./src/addons/fullscreen\" \"tsc -w -p ./src/addons/search\" \"tsc -w -p ./src/addons/terminado\" \"tsc -w -p ./src/addons/webLinks\" \"tsc -w -p ./src/addons/winptyCompat\" \"tsc -w -p ./src/addons/zmodem\"",
- "layering": "concurrently --kill-others-on-fail --names \"common,core\" \"tsc -p ./src/common\" \"tsc -p ./src/core\""
+ "watch": "tsc -b -w ./src/tsconfig.all.json"
}
}
diff --git a/src/common/tsconfig.json b/src/common/tsconfig.json
index 19dd0273..b40bb2f5 100644
--- a/src/common/tsconfig.json
+++ b/src/common/tsconfig.json
@@ -1,17 +1,7 @@
{
+ "extends": "../tsconfig-library-base",
"compilerOptions": {
- "target": "es5",
- "lib": [
- "es5"
- ],
- "rootDir": ".",
- "noEmit": true,
- "strict": true,
- "pretty": true,
- "types": [
- "../../node_modules/@types/mocha",
- "../../"
- ]
+ "outDir": "../../lib"
},
"include": [
"./**/*"
diff --git a/src/core/tsconfig.json b/src/core/tsconfig.json
index 4f024a28..41e41f0c 100644
--- a/src/core/tsconfig.json
+++ b/src/core/tsconfig.json
@@ -1,20 +1,12 @@
{
+ "extends": "../tsconfig-library-base",
"compilerOptions": {
- "target": "es5",
- "lib": [
- "es5"
- ],
- "rootDir": ".",
- "noEmit": true,
- "strict": true,
- "pretty": true,
- "types": [
- "../../node_modules/@types/mocha",
- "../../"
- ]
+ "outDir": "../../lib"
},
"include": [
- "./**/*",
- "../common/**/*"
+ "./**/*"
+ ],
+ "references": [
+ { "path": "../common" }
]
}
diff --git a/src/tsconfig-base.json b/src/tsconfig-base.json
new file mode 100644
index 00000000..5c6afcc5
--- /dev/null
+++ b/src/tsconfig-base.json
@@ -0,0 +1,15 @@
+{
+ "compilerOptions": {
+ "target": "es5",
+ "lib": [ "es5" ],
+ "rootDir": ".",
+
+ "sourceMap": true,
+ "removeComments": true,
+ "pretty": true,
+
+ "incremental": true,
+
+ "skipLibCheck": true
+ }
+}
diff --git a/src/tsconfig-library-base.json b/src/tsconfig-library-base.json
new file mode 100644
index 00000000..c82e0873
--- /dev/null
+++ b/src/tsconfig-library-base.json
@@ -0,0 +1,11 @@
+{
+ "extends": "./tsconfig-base.json",
+ "compilerOptions": {
+ "types": [
+ "../../node_modules/@types/mocha",
+ "../../"
+ ],
+ "composite": true,
+ "strict": true
+ }
+}
diff --git a/src/tsconfig.all.json b/src/tsconfig.all.json
new file mode 100644
index 00000000..bee5df32
--- /dev/null
+++ b/src/tsconfig.all.json
@@ -0,0 +1,16 @@
+{
+ "files": [],
+ "include": [],
+ "references": [
+ { "path": "." },
+ { "path": "./addons/attach" },
+ { "path": "./addons/fit" },
+ { "path": "./addons/fullscreen" },
+ { "path": "./addons/search" },
+ { "path": "./addons/terminado" },
+ { "path": "./addons/webLinks" },
+ { "path": "./addons/winptyCompat" },
+ { "path": "./addons/zmodem" }
+ ]
+}
+
\ No newline at end of file
diff --git a/tsconfig.json b/src/tsconfig.json
similarity index 53%
rename from tsconfig.json
rename to src/tsconfig.json
index 2d1d6e35..0aa3abb8 100644
--- a/tsconfig.json
+++ b/src/tsconfig.json
@@ -1,7 +1,7 @@
{
+ "extends": "./tsconfig-base",
"compilerOptions": {
"module": "commonjs",
- "target": "es5",
"lib": [
"dom",
"es5",
@@ -9,19 +9,22 @@
"scripthost",
"es2015.promise"
],
- "rootDir": "src",
- "outDir": "lib",
- "sourceMap": true,
- "removeComments": true,
- "preserveWatchOutput": true,
+ "rootDir": ".",
+ "outDir": "../lib",
+
"noUnusedLocals": true,
"noImplicitAny": true
},
"include": [
- "src/**/*",
- "typings/xterm.d.ts"
+ "./**/*",
+ "../typings/xterm.d.ts"
],
"exclude": [
- "src/addons/**/*"
+ "./addons/**/*"
+ ],
+ "references": [
+ { "path": "./common" },
+ { "path": "./core" }
]
}
+
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index 5555321d..896db4bf 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -6633,10 +6633,10 @@ typedarray@^0.0.6, typedarray@~0.0.5:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
-typescript@3.1:
- version "3.1.6"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.1.6.tgz#b6543a83cfc8c2befb3f4c8fba6896f5b0c9be68"
- integrity sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==
+typescript@3.4:
+ version "3.4.1"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.1.tgz#b6691be11a881ffa9a05765a205cb7383f3b63c6"
+ integrity sha512-3NSMb2VzDQm8oBTLH6Nj55VVtUEpe/rgkIzMir0qVoLyjDZlnMBva0U6vDiV3IH+sl/Yu6oP5QwsAQtHPmDd2Q==
uglify-es@^3.3.4:
version "3.3.9"