From e34ef08be66c641d16ff8b5413c8cc7c7c92bf84 Mon Sep 17 00:00:00 2001 From: Niklas Date: Fri, 24 Apr 2020 22:37:30 +0200 Subject: [PATCH] added manifest.json for extention support --- package-lock.json | 80 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 3 +- src/manifest.json | 18 +++++++++++ webpack.config.js | 11 +++++-- 4 files changed, 109 insertions(+), 3 deletions(-) create mode 100644 src/manifest.json diff --git a/package-lock.json b/package-lock.json index 6aabf03..134d38a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1686,6 +1686,54 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, + "copy-webpack-plugin": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz", + "integrity": "sha512-P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg==", + "dev": true, + "requires": { + "cacache": "^12.0.3", + "find-cache-dir": "^2.1.0", + "glob-parent": "^3.1.0", + "globby": "^7.1.1", + "is-glob": "^4.0.1", + "loader-utils": "^1.2.3", + "minimatch": "^3.0.4", + "normalize-path": "^3.0.0", + "p-limit": "^2.2.1", + "schema-utils": "^1.0.0", + "serialize-javascript": "^2.1.2", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, "core-js-pure": { "version": "3.6.5", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz", @@ -2035,6 +2083,32 @@ "randombytes": "^2.0.0" } }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "dev": true, + "requires": { + "path-type": "^3.0.0" + }, + "dependencies": { + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, "dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", @@ -7459,6 +7533,12 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, "slice-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", diff --git a/package.json b/package.json index bfece4c..d13b679 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "devServer": "webpack-dev-server --mode development --open", "build": "webpack --mode development", "buildProd": "webpack --mode production", - "watch":"webpack --watch --mode production" + "watch": "webpack --watch --mode production" }, "author": "", "license": "ISC", @@ -17,6 +17,7 @@ "@types/react-dom": "^16.9.6", "@typescript-eslint/eslint-plugin": "^2.28.0", "@typescript-eslint/parser": "^2.28.0", + "copy-webpack-plugin": "^5.1.1", "css-loader": "^3.5.2", "eslint": "^6.8.0", "eslint-plugin-react": "^7.19.0", diff --git a/src/manifest.json b/src/manifest.json new file mode 100644 index 0000000..9eeb43d --- /dev/null +++ b/src/manifest.json @@ -0,0 +1,18 @@ +{ + "manifest_version": 2, + "name": "Startpage", + "version": "0.2.0", + "description": "Startpage", + "developer": { + "name": "Djeeberjr" + }, + "chrome_url_overrides": { + "newtab": "startpage/index.html" + }, + "chrome_settings_overrides" : { + "homepage": "startpage/index.html" + }, + "permissions": [ + "" + ] +} \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index 06d2da4..aeb2aeb 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -3,6 +3,7 @@ const HtmlWebpackPlugin = require("html-webpack-plugin"); const MiniCssExtractPlugin = require("mini-css-extract-plugin"); +const CopyWebpackPlugin = require('copy-webpack-plugin'); const path = require("path"); const DEVELOPMENT = process.env.NODE_ENV === "development"; @@ -14,7 +15,7 @@ module.exports = { }, entry: ["./index.tsx"], output: { - path: path.join(__dirname, "dist"), + path: path.join(__dirname, "dist/startpage"), filename: "bundle.js" }, devtool: DEVELOPMENT ? "source-map" : false, @@ -61,6 +62,12 @@ module.exports = { hash: true, minify: !DEVELOPMENT }), - new MiniCssExtractPlugin() + new MiniCssExtractPlugin(), + new CopyWebpackPlugin([ + { + from : "manifest.json", + to: ".." + } + ]) ] };