From 2b04a8719298580cbdb1928c61aa863324965bbd Mon Sep 17 00:00:00 2001 From: Alexey Litvinov Date: Mon, 2 Nov 2015 22:01:20 +0300 Subject: [PATCH 1/3] failing webpack test --- package.json | 8 +++++++- test/cases/webpack/.gitignore | 1 + test/cases/webpack/source.css | 4 ++++ test/cases/webpack/source.js | 1 + test/extractor.js | 21 +++++++++++++++++++++ webpack.config.js | 29 +++++++++++++++++++++++++++++ 6 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 test/cases/webpack/.gitignore create mode 100644 test/cases/webpack/source.css create mode 100644 test/cases/webpack/source.js create mode 100644 test/extractor.js create mode 100644 webpack.config.js diff --git a/package.json b/package.json index 7286e25..dfe041f 100644 --- a/package.json +++ b/package.json @@ -19,21 +19,26 @@ "devDependencies": { "babel": "^5.8.20", "babel-eslint": "^4.0.5", + "css-loader": "^0.21.0", "css-modules-loader-core": "^1.0.0", "eslint": "^1.0.0", "eslint-config-airbnb": "0.0.7", "eslint-config-airbnb-lite": "^1.0.3", "eslint-watch": "^1.2.4", + "extract-text-webpack-plugin": "^0.8.2", "in-publish": "^2.0.0", "isparta": "^3.0.3", "lodash": "^3.10.1", "mocha": "^2.2.5", "postcss": "^5.0.10", + "postcss-loader": "^0.7.0", "postcss-modules-extract-imports": "^1.0.0", "postcss-modules-local-by-default": "^1.0.0", "postcss-modules-scope": "^1.0.0", "postcss-modules-values": "^1.1.0", - "precommit-hook": "^3.0.0" + "precommit-hook": "^3.0.0", + "style-loader": "^0.13.0", + "webpack": "^1.12.2" }, "peerDependencies": { "postcss": "^5.x", @@ -43,6 +48,7 @@ "postcss-modules-values": "^1.1.0" }, "scripts": { + "fixture": "webpack", "start": "esw -w .", "lint": "eslint .", "test": "mocha --compilers js:babel/register", diff --git a/test/cases/webpack/.gitignore b/test/cases/webpack/.gitignore new file mode 100644 index 0000000..fcfc4a1 --- /dev/null +++ b/test/cases/webpack/.gitignore @@ -0,0 +1 @@ +result* diff --git a/test/cases/webpack/source.css b/test/cases/webpack/source.css new file mode 100644 index 0000000..c8481a9 --- /dev/null +++ b/test/cases/webpack/source.css @@ -0,0 +1,4 @@ +.local +{ + color: white; +} diff --git a/test/cases/webpack/source.js b/test/cases/webpack/source.js new file mode 100644 index 0000000..ae1bf86 --- /dev/null +++ b/test/cases/webpack/source.js @@ -0,0 +1 @@ +var css = require('./source.css'); diff --git a/test/extractor.js b/test/extractor.js new file mode 100644 index 0000000..8dcb64a --- /dev/null +++ b/test/extractor.js @@ -0,0 +1,21 @@ +import { equal } from 'assert'; +import { execSync } from 'child_process'; +import { readFileSync } from 'fs'; +import { resolve } from 'path'; +import hook from '../src'; + +describe('extractor', () => { + let selector; + + before(() => { + hook({generateScopedName: '[name]__[local]___[hash:base64:5]'}); + execSync('npm run fixture', {cwd: process.cwd()}); + selector = readFileSync(resolve('test/cases/webpack/result.css'), 'utf8') + .split('\n').shift().replace(/^\./, ''); + }); + + it('should generate the same selectors as the webpack does', () => { + const tokens = require('./cases/webpack/source.css'); + equal(selector, tokens.local); + }); +}); diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..f8b28da --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,29 @@ +'use strict'; + +var ExtractTextPlugin = require('extract-text-webpack-plugin'); +var path = require('path'); + +module.exports = { + entry: path.resolve('test/cases/webpack/source.js'), + + output: { + filename: 'result.js', + path: path.resolve('test/cases/webpack') + }, + + module: { + loaders: [ + { + test: /\.css$/, + loader: ExtractTextPlugin.extract('style-loader', + 'css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!postcss-loader') + } + ] + }, + + plugins: [ + new ExtractTextPlugin('result.css', { + allChunks: true + }) + ] +}; From 4584951322dce5923a9e0faaa800a009a9a44cfa Mon Sep 17 00:00:00 2001 From: Alexey Litvinov Date: Mon, 2 Nov 2015 22:16:33 +0300 Subject: [PATCH 2/3] generic names update --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dfe041f..85964a5 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ }, "dependencies": { "debug": "^2.2.0", - "generic-names": "^1.0.0", + "generic-names": "^1.0.1", "icss-replace-symbols": "^1.0.2", "lodash.foreach": "^3.0.3", "lodash.identity": "^3.0.0", From 76c4b5672067362e4ca55a7d5c4f1bb812b9c932 Mon Sep 17 00:00:00 2001 From: Alexey Litvinov Date: Mon, 2 Nov 2015 22:19:22 +0300 Subject: [PATCH 3/3] added webpack.config to the npmignore --- .eslintignore | 2 ++ .npmignore | 1 + 2 files changed, 3 insertions(+) diff --git a/.eslintignore b/.eslintignore index ff1f320..925e6af 100644 --- a/.eslintignore +++ b/.eslintignore @@ -3,4 +3,6 @@ coverage node_modules generate-tests.js +test/cases/webpack/* test/common-test-cases.js +webpack.config.js diff --git a/.npmignore b/.npmignore index 0ee99bb..8e053ed 100644 --- a/.npmignore +++ b/.npmignore @@ -7,3 +7,4 @@ generate-tests.js src/ test/ utils/ +webpack.config.js