From d3cdd99503c8d4c46ffefd01aa83c5f230eeb127 Mon Sep 17 00:00:00 2001 From: chivchila Date: Thu, 26 Aug 2021 15:32:30 +0300 Subject: [PATCH 1/3] Make library npm-compatible --- bower.json | 1 - package.json | 15 ++++++++++++--- scripts/fromBowerToNpm.js | 31 +++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 scripts/fromBowerToNpm.js diff --git a/bower.json b/bower.json index 9b38b79..a7ef42b 100644 --- a/bower.json +++ b/bower.json @@ -23,7 +23,6 @@ "o-buttons": "^6.0.2", "o-overlay": "^3.0.0", "o-tracking": "^2.0.3", - "superstore": "^2.1.0", "o-visual-effects": "^3.0.0", "o-message": "^4.1.8" } diff --git a/package.json b/package.json index cfa3b4a..ba80cc7 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,16 @@ "webpack-sources": "^1.0.1", "webpack-stats-plugin": "^0.1.1" }, - "dependencies": {}, + "dependencies": { + "n-ui-foundations": "github:financial-times/n-ui-foundations#nobower", + "next-session-client": "^3.0.1", + "o-buttons": "npm:@financial-times/o-buttons@^6.0.2", + "o-overlay": "npm:@financial-times/o-overlay@^3.0.0", + "o-tracking": "npm:@financial-times/o-tracking@^2.0.3", + "o-visual-effects": "npm:@financial-times/o-visual-effects@^3.0.0", + "o-message": "npm:@financial-times/o-message@^4.1.8", + "superstore": "^2.1.0" + }, "config": {}, "engines": { "node": "12.x" @@ -45,8 +54,8 @@ "husky": { "hooks": { "commit-msg": "node_modules/.bin/secret-squirrel-commitmsg", - "pre-commit": "node_modules/.bin/secret-squirrel", + "pre-commit": "node_modules/.bin/secret-squirrel && node ./scripts/fromBowerToNpm.js", "pre-push": "make verify -j3" } } -} +} \ No newline at end of file diff --git a/scripts/fromBowerToNpm.js b/scripts/fromBowerToNpm.js new file mode 100644 index 0000000..7c10968 --- /dev/null +++ b/scripts/fromBowerToNpm.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const bowerPackage = require('../bower.json'); +const npmPackage = require('../package.json'); + +function standardNpmPackage (version, name) { + return `npm:@financial-times/${name}@${version}`; +} + +const resolutionMap = { + 'n-ui-foundations': () => 'github:financial-times/n-ui-foundations#nobower', + 'next-session-client': (version) => `${version}`, + 'o-buttons': standardNpmPackage, + 'o-overlay': standardNpmPackage, + 'o-tracking': standardNpmPackage, + 'o-visual-effects': standardNpmPackage, + 'o-message': standardNpmPackage, +}; + +for (const dependency in bowerPackage.dependencies) { + if (!resolutionMap[dependency]) { + throw new Error(`Please update fromBowerToNpm resolution map with the Bower package ${dependency}, so it will be usable also from NPM consumers` + ); + } else { + npmPackage.dependencies[dependency] = resolutionMap[dependency]( + bowerPackage.dependencies[dependency], + dependency + ); + } +} + +fs.writeFileSync('package.json', JSON.stringify(npmPackage, null, 2)); From c7f0b2115cd0e8c3c970d7eef24d6b8a82ecf1a8 Mon Sep 17 00:00:00 2001 From: chivchila Date: Thu, 26 Aug 2021 17:09:15 +0300 Subject: [PATCH 2/3] Import statetment support for jest tests --- jest.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/jest.config.js b/jest.config.js index 7bfda98..94d6dc7 100644 --- a/jest.config.js +++ b/jest.config.js @@ -4,4 +4,5 @@ module.exports = { transform: { '.(js|jsx)': '@sucrase/jest-plugin' }, + transformIgnorePatterns: ['/node_modules//(?!(@financial-times)/)'], }; From 41f4938c353e14442c29ea8f814e8dbce228d662 Mon Sep 17 00:00:00 2001 From: chivchila Date: Fri, 3 Sep 2021 10:34:38 +0100 Subject: [PATCH 3/3] Update readme --- README.md | 6 ++++++ webpack.config.js | 1 + 2 files changed, 7 insertions(+) diff --git a/README.md b/README.md index 4253150..686401e 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,12 @@ Verify that the Sass can compile by running $ npx sass ./test/main.scss --load-path=./bower_components/ ``` +And by running: + +```sh +$ npx sass ./test/main.scss --load-path=./node_modules --load-path=./node_modules/@financial-times +``` + ### Developing with a next app Instruction for developing the library within a next app will be are in development ([ACC-1156](https://financialtimes.atlassian.net/browse/ACC-1156)). diff --git a/webpack.config.js b/webpack.config.js index eb19a29..6f97002 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -30,6 +30,7 @@ const extractOptions = [{ sourcemap: true, includePaths: [ path.resolve('./bower_components'), + path.resolve('./node_modules'), path.resolve('./node_modules/@financial-times') ], // NOTE: This line is important for preservation of comments needed by the css-extract-block plugin