diff options
Diffstat (limited to 'node_modules/@vue/component-compiler-utils/dist/styleProcessors/index.js')
| -rw-r--r-- | node_modules/@vue/component-compiler-utils/dist/styleProcessors/index.js | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/node_modules/@vue/component-compiler-utils/dist/styleProcessors/index.js b/node_modules/@vue/component-compiler-utils/dist/styleProcessors/index.js new file mode 100644 index 00000000..430a83e2 --- /dev/null +++ b/node_modules/@vue/component-compiler-utils/dist/styleProcessors/index.js @@ -0,0 +1,87 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const merge = require('merge-source-map'); +// .scss/.sass processor +const scss = { + render(source, map, options) { + const nodeSass = require('node-sass'); + const finalOptions = Object.assign({}, options, { + data: source, + file: options.filename, + outFile: options.filename, + sourceMap: !!map + }); + try { + const result = nodeSass.renderSync(finalOptions); + if (map) { + return { + code: result.css.toString(), + map: merge(map, JSON.parse(result.map.toString())), + errors: [] + }; + } + return { code: result.css.toString(), errors: [] }; + } + catch (e) { + return { code: '', errors: [e] }; + } + } +}; +const sass = { + render(source, map, options) { + return scss.render(source, map, Object.assign({}, options, { indentedSyntax: true })); + } +}; +// .less +const less = { + render(source, map, options) { + const nodeLess = require('less'); + let result; + let error = null; + nodeLess.render(source, Object.assign({}, options, { syncImport: true }), (err, output) => { + error = err; + result = output; + }); + if (error) + return { code: '', errors: [error] }; + if (map) { + return { + code: result.css.toString(), + map: merge(map, result.map), + errors: [] + }; + } + return { code: result.css.toString(), errors: [] }; + } +}; +// .styl +const styl = { + render(source, map, options) { + const nodeStylus = require('stylus'); + try { + const ref = nodeStylus(source); + Object.keys(options).forEach(key => ref.set(key, options[key])); + if (map) + ref.set('sourcemap', { inline: false, comment: false }); + const result = ref.render(); + if (map) { + return { + code: result, + map: merge(map, ref.sourcemap), + errors: [] + }; + } + return { code: result, errors: [] }; + } + catch (e) { + return { code: '', errors: [e] }; + } + } +}; +exports.processors = { + less, + sass, + scss, + styl, + stylus: styl +}; |
