From 989610e8c3f547d0e06f3ddc706e7cbaa1061e5f Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Mon, 10 Jun 2019 14:28:07 -0700 Subject: [PATCH] Webpack the addons --- addons/xterm-addon-attach/package.json | 7 +++-- addons/xterm-addon-attach/src/tsconfig.json | 2 +- addons/xterm-addon-attach/webpack.config.js | 31 +++++++++++++++++++ addons/xterm-addon-fit/package.json | 7 +++-- addons/xterm-addon-fit/src/tsconfig.json | 2 +- addons/xterm-addon-fit/webpack.config.js | 31 +++++++++++++++++++ addons/xterm-addon-search/package.json | 7 +++-- addons/xterm-addon-search/src/tsconfig.json | 2 +- addons/xterm-addon-search/webpack.config.js | 31 +++++++++++++++++++ addons/xterm-addon-web-links/package.json | 7 +++-- .../xterm-addon-web-links/src/tsconfig.json | 2 +- .../xterm-addon-web-links/webpack.config.js | 31 +++++++++++++++++++ bin/packageAddons.js | 19 ++++++++++++ package.json | 1 + 14 files changed, 168 insertions(+), 12 deletions(-) create mode 100644 addons/xterm-addon-attach/webpack.config.js create mode 100644 addons/xterm-addon-fit/webpack.config.js create mode 100644 addons/xterm-addon-search/webpack.config.js create mode 100644 addons/xterm-addon-web-links/webpack.config.js create mode 100644 bin/packageAddons.js diff --git a/addons/xterm-addon-attach/package.json b/addons/xterm-addon-attach/package.json index e381730c..e0f2f0a8 100644 --- a/addons/xterm-addon-attach/package.json +++ b/addons/xterm-addon-attach/package.json @@ -5,11 +5,14 @@ "name": "The xterm.js authors", "url": "https://xtermjs.org/" }, - "main": "lib/AttachAddon.js", + "main": "lib/xterm-addon-attach.js", "types": "typings/xterm-addon-attach.d.ts", "license": "MIT", "scripts": { - "prepublishOnly": "../../node_modules/.bin/tsc -p src" + "build": "../../node_modules/.bin/tsc -p src", + "prepackage": "npm run build", + "package": "../../node_modules/.bin/webpack", + "prepublishOnly": "npm run package" }, "peerDependencies": { "xterm": "^3.14.0" diff --git a/addons/xterm-addon-attach/src/tsconfig.json b/addons/xterm-addon-attach/src/tsconfig.json index 9a92ab48..d875aa53 100644 --- a/addons/xterm-addon-attach/src/tsconfig.json +++ b/addons/xterm-addon-attach/src/tsconfig.json @@ -7,7 +7,7 @@ "es2015" ], "rootDir": ".", - "outDir": "../lib", + "outDir": "../out", "sourceMap": true, "removeComments": true, "strict": true diff --git a/addons/xterm-addon-attach/webpack.config.js b/addons/xterm-addon-attach/webpack.config.js new file mode 100644 index 00000000..65996f19 --- /dev/null +++ b/addons/xterm-addon-attach/webpack.config.js @@ -0,0 +1,31 @@ +/** + * Copyright (c) 2019 The xterm.js authors. All rights reserved. + * @license MIT + */ + +const path = require('path'); + +const addonName = 'AttachAddon'; +const mainFile = 'xterm-addon-attach.js'; + +module.exports = { + entry: `./out/${addonName}.js`, + devtool: 'source-map', + module: { + rules: [ + { + test: /\.js$/, + use: ["source-map-loader"], + enforce: "pre", + exclude: /node_modules/ + } + ] + }, + output: { + filename: mainFile, + path: path.resolve('./lib'), + library: addonName, + libraryTarget: 'umd' + }, + mode: 'production' +}; diff --git a/addons/xterm-addon-fit/package.json b/addons/xterm-addon-fit/package.json index a29f3199..e2b91d41 100644 --- a/addons/xterm-addon-fit/package.json +++ b/addons/xterm-addon-fit/package.json @@ -5,11 +5,14 @@ "name": "The xterm.js authors", "url": "https://xtermjs.org/" }, - "main": "lib/FitAddon.js", + "main": "lib/xterm-addon-fit.js", "types": "typings/xterm-addon-fit.d.ts", "license": "MIT", "scripts": { - "prepublishOnly": "../../node_modules/.bin/tsc -p src" + "build": "../../node_modules/.bin/tsc -p src", + "prepackage": "npm run build", + "package": "../../node_modules/.bin/webpack", + "prepublishOnly": "npm run package" }, "peerDependencies": { "xterm": "^3.14.0" diff --git a/addons/xterm-addon-fit/src/tsconfig.json b/addons/xterm-addon-fit/src/tsconfig.json index 6b914e81..5539aa56 100644 --- a/addons/xterm-addon-fit/src/tsconfig.json +++ b/addons/xterm-addon-fit/src/tsconfig.json @@ -7,7 +7,7 @@ "es2015" ], "rootDir": ".", - "outDir": "../lib", + "outDir": "../out", "sourceMap": true, "removeComments": true, "strict": true diff --git a/addons/xterm-addon-fit/webpack.config.js b/addons/xterm-addon-fit/webpack.config.js new file mode 100644 index 00000000..4b542150 --- /dev/null +++ b/addons/xterm-addon-fit/webpack.config.js @@ -0,0 +1,31 @@ +/** + * Copyright (c) 2019 The xterm.js authors. All rights reserved. + * @license MIT + */ + +const path = require('path'); + +const addonName = 'FitAddon'; +const mainFile = 'xterm-addon-fit.js'; + +module.exports = { + entry: `./out/${addonName}.js`, + devtool: 'source-map', + module: { + rules: [ + { + test: /\.js$/, + use: ["source-map-loader"], + enforce: "pre", + exclude: /node_modules/ + } + ] + }, + output: { + filename: mainFile, + path: path.resolve('./lib'), + library: addonName, + libraryTarget: 'umd' + }, + mode: 'production' +}; diff --git a/addons/xterm-addon-search/package.json b/addons/xterm-addon-search/package.json index 38f76add..5c11efde 100644 --- a/addons/xterm-addon-search/package.json +++ b/addons/xterm-addon-search/package.json @@ -5,11 +5,14 @@ "name": "The xterm.js authors", "url": "https://xtermjs.org/" }, - "main": "lib/SearchAddon.js", + "main": "lib/xterm-addon-search.js", "types": "typings/xterm-addon-search.d.ts", "license": "MIT", "scripts": { - "prepublishOnly": "../../node_modules/.bin/tsc -p src" + "build": "../../node_modules/.bin/tsc -p src", + "prepackage": "npm run build", + "package": "../../node_modules/.bin/webpack", + "prepublishOnly": "npm run package" }, "peerDependencies": { "xterm": "^3.14.0" diff --git a/addons/xterm-addon-search/src/tsconfig.json b/addons/xterm-addon-search/src/tsconfig.json index 58a4bacf..1cb6d4d7 100644 --- a/addons/xterm-addon-search/src/tsconfig.json +++ b/addons/xterm-addon-search/src/tsconfig.json @@ -7,7 +7,7 @@ "es6", ], "rootDir": ".", - "outDir": "../lib", + "outDir": "../out", "sourceMap": true, "removeComments": true, "strict": true diff --git a/addons/xterm-addon-search/webpack.config.js b/addons/xterm-addon-search/webpack.config.js new file mode 100644 index 00000000..726dceb6 --- /dev/null +++ b/addons/xterm-addon-search/webpack.config.js @@ -0,0 +1,31 @@ +/** + * Copyright (c) 2019 The xterm.js authors. All rights reserved. + * @license MIT + */ + +const path = require('path'); + +const addonName = 'SearchAddon'; +const mainFile = 'xterm-addon-search.js'; + +module.exports = { + entry: `./out/${addonName}.js`, + devtool: 'source-map', + module: { + rules: [ + { + test: /\.js$/, + use: ["source-map-loader"], + enforce: "pre", + exclude: /node_modules/ + } + ] + }, + output: { + filename: mainFile, + path: path.resolve('./lib'), + library: addonName, + libraryTarget: 'umd' + }, + mode: 'production' +}; diff --git a/addons/xterm-addon-web-links/package.json b/addons/xterm-addon-web-links/package.json index 82edbe9b..5325df9d 100644 --- a/addons/xterm-addon-web-links/package.json +++ b/addons/xterm-addon-web-links/package.json @@ -5,11 +5,14 @@ "name": "The xterm.js authors", "url": "https://xtermjs.org/" }, - "main": "lib/WebLinksAddon.js", + "main": "lib/xterm-addon-web-links.js", "types": "typings/xterm-addon-web-links.d.ts", "license": "MIT", "scripts": { - "prepublishOnly": "../../node_modules/.bin/tsc -p src" + "build": "../../node_modules/.bin/tsc -p src", + "prepackage": "npm run build", + "package": "../../node_modules/.bin/webpack", + "prepublishOnly": "npm run package" }, "peerDependencies": { "xterm": "^3.14.0" diff --git a/addons/xterm-addon-web-links/src/tsconfig.json b/addons/xterm-addon-web-links/src/tsconfig.json index 6b914e81..5539aa56 100644 --- a/addons/xterm-addon-web-links/src/tsconfig.json +++ b/addons/xterm-addon-web-links/src/tsconfig.json @@ -7,7 +7,7 @@ "es2015" ], "rootDir": ".", - "outDir": "../lib", + "outDir": "../out", "sourceMap": true, "removeComments": true, "strict": true diff --git a/addons/xterm-addon-web-links/webpack.config.js b/addons/xterm-addon-web-links/webpack.config.js new file mode 100644 index 00000000..fd87d07e --- /dev/null +++ b/addons/xterm-addon-web-links/webpack.config.js @@ -0,0 +1,31 @@ +/** + * Copyright (c) 2019 The xterm.js authors. All rights reserved. + * @license MIT + */ + +const path = require('path'); + +const addonName = 'WebLinksAddon'; +const mainFile = 'xterm-addon-web-links.js'; + +module.exports = { + entry: `./out/${addonName}.js`, + devtool: 'source-map', + module: { + rules: [ + { + test: /\.js$/, + use: ["source-map-loader"], + enforce: "pre", + exclude: /node_modules/ + } + ] + }, + output: { + filename: mainFile, + path: path.resolve('./lib'), + library: addonName, + libraryTarget: 'umd' + }, + mode: 'production' +}; diff --git a/bin/packageAddons.js b/bin/packageAddons.js new file mode 100644 index 00000000..54ed634e --- /dev/null +++ b/bin/packageAddons.js @@ -0,0 +1,19 @@ +/** + * Copyright (c) 2019 The xterm.js authors. All rights reserved. + * @license MIT + */ + +const cp = require('child_process'); +const path = require('path'); +const fs = require('fs'); + +const addons = fs.readdirSync(path.resolve(__dirname, '../addons')); +addons.forEach(addon => { + cp.spawnSync( + 'npm', ['run', 'package'], + { + cwd: path.resolve(__dirname, `../addons/${addon}`), + stdio: 'inherit' + } + ); +}); diff --git a/package.json b/package.json index 16ebca92..e93ab8ca 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "test-api": "mocha \"**/*.api.js\"", "test-unit": "node ./bin/test.js", "build": "tsc -b ./tsconfig.all.json", + "postbuild": "node ./bin/packageAddons.js", "prepare": "npm run build", "prepublishOnly": "npm run package", "watch": "tsc -b -w ./tsconfig.all.json --preserveWatchOutput",