diff --git a/lib/process.js b/lib/process.js index 9126cab4..0ed234c6 100644 --- a/lib/process.js +++ b/lib/process.js @@ -107,12 +107,10 @@ module.exports = function (src, filePath) { const styleStr = parts.styles.map(ast => { if (!module) return - if (/^scss|sass|less|pcss|postcss/.test(ast.lang)) { - return false - } - + const styleObj = (/^scss|sass|less|pcss|postcss/.test(ast.lang)) + ? {} + : processStyle(ast, filePath) const moduleName = ast.module === true ? '$style' : ast.module - const styleObj = processStyle(ast, filePath) return '\n this[\'' + moduleName + '\'] = ' + JSON.stringify(styleObj) }).filter(_ => _) diff --git a/test/less.spec.js b/test/less.spec.js index 754210d2..cea9124d 100644 --- a/test/less.spec.js +++ b/test/less.spec.js @@ -1,9 +1,14 @@ import { shallow } from 'vue-test-utils' import Less from './resources/Less.vue' +import LessModule from './resources/LessModule.vue' describe('processes .vue file with Less style', () => { it('does not error on less', () => { const wrapper = shallow(Less) expect(wrapper.classes()).toContain('testLess') }) + + it('does not error on less module', () => { + expect(() => shallow(LessModule)).not.toThrow() + }) }) diff --git a/test/postcss.spec.js b/test/postcss.spec.js index d34bc319..ed614980 100644 --- a/test/postcss.spec.js +++ b/test/postcss.spec.js @@ -1,9 +1,14 @@ import { shallow } from 'vue-test-utils' import PostCss from './resources/PostCss.vue' +import PostCssModule from './resources/PostCssModule.vue' describe('processes .vue file with PostCSS style', () => { it('does not error on pcss/postcss', () => { const wrapper = shallow(PostCss) expect(wrapper.classes()).toContain('testPcss') }) + + it('does not error on pcss/postcss module', () => { + expect(() => shallow(PostCssModule)).not.toThrow() + }) }) diff --git a/test/resources/LessModule.vue b/test/resources/LessModule.vue new file mode 100644 index 00000000..dcd091c4 --- /dev/null +++ b/test/resources/LessModule.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/test/resources/PostCssModule.vue b/test/resources/PostCssModule.vue new file mode 100644 index 00000000..ff3045dd --- /dev/null +++ b/test/resources/PostCssModule.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/test/resources/SassModule.vue b/test/resources/SassModule.vue new file mode 100644 index 00000000..e9e968d3 --- /dev/null +++ b/test/resources/SassModule.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/test/scss.spec.js b/test/scss.spec.js index 5f96675c..f67d5e4f 100644 --- a/test/scss.spec.js +++ b/test/scss.spec.js @@ -1,9 +1,14 @@ import { shallow } from 'vue-test-utils' import Sass from './resources/Sass.vue' +import SassModule from './resources/SassModule.vue' describe('processes .vue file with Stylus style', () => { it('does not error on scss or sass', () => { const wrapper = shallow(Sass) expect(wrapper.classes()).toContain('testA') }) + + it('does not error on scss/sass module', () => { + expect(() => shallow(SassModule)).not.toThrow() + }) })