Skip to content
This repository was archived by the owner on Dec 26, 2018. It is now read-only.

Commit a916805

Browse files
committed
refactor compiler options
1 parent 13291e2 commit a916805

File tree

12 files changed

+25
-28
lines changed

12 files changed

+25
-28
lines changed

index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
var through = require('through')
22
var compiler = require('./lib/compiler')
33

4-
compiler.loadConfig()
4+
compiler.loadConfig({
5+
extractCss: true
6+
})
57

68
module.exports = function vueify (file, options) {
79
if (!/.vue$/.test(file)) return through()

lib/compiler.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ var vueCompiler = require('vue-template-compiler')
99
var genId = require('./gen-id')
1010
var normalize = require('./normalize')
1111
var compilers = require('./compilers')
12-
var options = require('./compilers/options')
1312
var rewriteStyle = require('./style-rewriter')
1413

1514
var hasBabel = true
@@ -29,6 +28,9 @@ var insertCSSPath = normalize.lib('insert-css')
2928
var compiler = module.exports = new Emitter()
3029
compiler.setMaxListeners(Infinity)
3130

31+
// options
32+
var options = compiler.options = {}
33+
3234
// load user config
3335
compiler.loadConfig = function () {
3436
var fs = require('fs')
@@ -96,7 +98,7 @@ compiler.compile = function (content, filePath, cb) {
9698
file: filePath,
9799
style: style
98100
})
99-
if (!process.env.VUEIFY_EXTRACT_CSS) {
101+
if (!options.extractCSS) {
100102
style = JSON.stringify(style)
101103
output +=
102104
'var __vueify_style_dispose__ = require("' + insertCSSPath + '").insert(' + style + ')\n'
@@ -134,7 +136,7 @@ compiler.compile = function (content, filePath, cb) {
134136
' if (!hotAPI.compatible) return\n' +
135137
' module.hot.accept()\n' +
136138
// remove style tag on dispose
137-
(style && !process.env.VUEIFY_EXTRACT_CSS
139+
(style && !options.extractCSS
138140
? ' module.hot.dispose(__vueify_style_dispose__)\n'
139141
: '') +
140142
' if (!module.hot.data) {\n' +
@@ -189,7 +191,7 @@ function processStyle (part, filePath, id, parts) {
189191
var style = getContent(part, filePath)
190192
return compileAsPromise('style', style, part.lang, filePath)
191193
.then(function (res) {
192-
return rewriteStyle(id, res, part.scoped).then(function (res) {
194+
return rewriteStyle(id, res, part.scoped, options).then(function (res) {
193195
parts.styles.push(res)
194196
})
195197
})

lib/compilers/babel.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
var fs = require('fs')
22
var path = require('path')
3-
var options = require('./options')
43
var ensureRequire = require('../ensure-require')
54

65
var defaultBabelOptions = {
@@ -36,10 +35,10 @@ if (babelOptions === defaultBabelOptions) {
3635
}
3736
}
3837

39-
module.exports = function (raw, cb) {
38+
module.exports = function (raw, cb, compiler) {
4039
try {
4140
var babel = require('babel-core')
42-
var res = babel.transform(raw, options.babel || babelOptions)
41+
var res = babel.transform(raw, compiler.options.babel || babelOptions)
4342
} catch (err) {
4443
return cb(err)
4544
}

lib/compilers/coffee.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
var options = require('./options')
21
var ensureRequire = require('../ensure-require.js')
32

4-
module.exports = function (raw, cb) {
3+
module.exports = function (raw, cb, compiler) {
54
ensureRequire('coffee', ['coffee-script'])
65
var coffee = require('coffee-script')
76
try {
8-
var js = coffee.compile(raw, options.coffee || {
7+
var js = coffee.compile(raw, compiler.options.coffee || {
98
bare: true
109
})
1110
} catch (err) {

lib/compilers/jade.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
var options = require('./options')
21
var ensureRequire = require('../ensure-require.js')
32

4-
module.exports = function (raw, cb) {
3+
module.exports = function (raw, cb, compiler) {
54
ensureRequire('jade', 'jade')
65
var jade = require('jade')
76
try {
8-
var html = jade.compile(raw, options.jade || {})()
7+
var html = jade.compile(raw, compiler.options.jade || {})()
98
} catch (err) {
109
return cb(err)
1110
}

lib/compilers/less.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
var options = require('./options')
21
var assign = require('object-assign')
32
var path = require('path')
43
var ensureRequire = require('../ensure-require.js')
@@ -9,7 +8,7 @@ module.exports = function (raw, cb, compiler, filePath) {
98

109
var opts = assign({
1110
filename: path.basename(filePath)
12-
}, options.less)
11+
}, compiler.options.less)
1312

1413
// provide import path
1514
var dir = path.dirname(filePath)

lib/compilers/options.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

lib/compilers/pug.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
var options = require('./options')
21
var ensureRequire = require('../ensure-require.js')
32

4-
module.exports = function (raw, cb) {
3+
module.exports = function (raw, cb, compiler) {
54
ensureRequire('pug', 'pug')
65
var pug = require('pug')
76
try {
8-
var html = pug.compile(raw, options.pug || {})()
7+
var html = pug.compile(raw, compiler.options.pug || {})()
98
} catch (err) {
109
return cb(err)
1110
}

lib/compilers/sass.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
var options = require('./options')
21
var assign = require('object-assign')
32
var path = require('path')
43
var ensureRequire = require('../ensure-require.js')
@@ -19,7 +18,7 @@ module.exports = function (raw, cb, compiler, filePath) {
1918
error: function (err) {
2019
cb(err)
2120
}
22-
}, options.sass || {
21+
}, compiler.options.sass || {
2322
sourceComments: true
2423
})
2524

lib/compilers/stylus.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
var options = require('./options')
21
var assign = require('object-assign')
32
var path = require('path')
43
var ensureRequire = require('../ensure-require.js')
@@ -9,7 +8,7 @@ module.exports = function (raw, cb, compiler, filePath) {
98

109
var opts = assign({
1110
filename: path.basename(filePath)
12-
}, options.stylus || {})
11+
}, compiler.options.stylus || {})
1312

1413
var dir = path.dirname(filePath)
1514
var paths = [dir, process.cwd()]

lib/style-rewriter.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ var postcss = require('postcss')
22
var selectorParser = require('postcss-selector-parser')
33
var cache = require('lru-cache')(100)
44
var assign = require('object-assign')
5-
var options = require('./compilers/options')
65

76
var currentId
87
var addId = postcss.plugin('add-id', function () {
@@ -36,10 +35,11 @@ var addId = postcss.plugin('add-id', function () {
3635
* @param {String} id
3736
* @param {String} css
3837
* @param {Boolean} scoped
38+
* @param {Object} options
3939
* @return {Promise}
4040
*/
4141

42-
module.exports = function (id, css, scoped) {
42+
module.exports = function (id, css, scoped, options) {
4343
var key = id + '!!' + css
4444
var val = cache.get(key)
4545
if (val) {

plugins/extract-css.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
process.env.VUEIFY_EXTRACT_CSS = true
2-
31
var fs = require('fs')
2+
var compiler = require('../lib/compiler')
3+
4+
compiler.options.extractCSS = true
45

56
module.exports = function (b, opts) {
67
var outPath = opts.out || opts.o || 'bundle.css'

0 commit comments

Comments
 (0)