diff --git a/config/build.js b/config/build.js index 9cffff4..06fecdf 100644 --- a/config/build.js +++ b/config/build.js @@ -1,68 +1,66 @@ -"use strict"; +'use strict' -const babel = require('rollup-plugin-babel'); -const rollup = require('rollup'); -const replace = require('rollup-plugin-replace'); -const zlib = require('zlib'); -const fs = require('fs'); -const pack = require('../package.json'); -const banner = require('./banner'); +const babel = require('rollup-plugin-babel') +const rollup = require('rollup') +const replace = require('rollup-plugin-replace') +const zlib = require('zlib') +const fs = require('fs') +const pack = require('../package.json') +const banner = require('./banner') -let main = fs +const main = fs .readFileSync('src/index.js', 'utf-8') - .replace(/plugin\.version = '[\d\.]+'/, `plugin.version = '${pack.version}'`); + .replace(/plugin\.version = '[\d\.]+'/, `plugin.version = '${pack.version}'`) -fs.writeFileSync('src/index.js', main); +fs.writeFileSync('src/index.js', main) rollup.rollup({ - entry: 'src/index.js', - plugins: [ - babel({ runtimeHelpers: true }) - ], - external (id) { - if (/babel-runtime\/.*/i.test(id)) { - return true - } + input: 'src/index.js', + plugins: [ + babel({ runtimeHelpers: true }) + ], + external (id) { + if (/babel-runtime\/.*/i.test(id)) { + return true + } - return [ - 'camelcase', - 'coffeescript-compiler', - 'de-indent', - 'debug', - 'fs', - 'hash-sum', - 'html-minifier', - 'less', - 'magic-string', - 'merge-options', - 'node-sass', - 'parse5', - 'path', - 'postcss', - 'postcss-load-config', - 'postcss-modules', - 'postcss-selector-parser', - 'posthtml', - 'posthtml-attrs-parser', - 'pug', - 'rollup-pluginutils', - 'stylus', - 'vue-template-es2015-compiler', - 'vue-template-validator', - 'typescript' - ].indexOf(id) > -1 - } - }) - .then(function (bundle) { - bundle.write({ - format: 'cjs', - dest: 'dist/' + pack.name + '.common.js', - }); - bundle.write({ - format: 'es', - dest: 'dist/' + pack.name + '.js', - }); - }) - .catch(function logError(e) { - console.log(e) - }); + return [ + 'camelcase', + 'coffeescript-compiler', + 'de-indent', + 'debug', + 'fs', + 'hash-sum', + 'html-minifier', + 'less', + 'magic-string', + 'merge-options', + 'node-sass', + 'parse5', + 'path', + 'postcss', + 'postcss-load-config', + 'postcss-modules', + 'postcss-selector-parser', + 'posthtml', + 'posthtml-attrs-parser', + 'pug', + 'rollup-pluginutils', + 'stylus', + 'vue-template-es2015-compiler', + 'vue-template-validator', + 'typescript' + ].indexOf(id) > -1 + } +}).then(function (bundle) { + bundle.write({ + format: 'cjs', + file: 'dist/' + pack.name + '.common.js' + }) + bundle.write({ + format: 'es', + file: 'dist/' + pack.name + '.js' + }) +}).catch(function logError (e) { + console.log(e) +}) diff --git a/package.json b/package.json index b0adbbe..6775a86 100644 --- a/package.json +++ b/package.json @@ -37,21 +37,21 @@ "babel-runtime": "^6.22.0", "camelcase": "^4.0.0", "de-indent": "^1.0.2", - "debug": "^2.6.0", + "debug": "^3.1.0", "hash-sum": "^1.0.2", "html-minifier": "^3.2.3", - "magic-string": "^0.19.0", - "merge-options": "0.0.64", - "parse5": "^2.1.0", + "magic-string": "^0.22.4", + "merge-options": "^1.0.0", + "parse5": "^3.0.3", "postcss": "^5.2.11", "postcss-load-config": "^1.2.0", "postcss-modules": "^0.6.4", "postcss-selector-parser": "^2.2.3", - "posthtml": "^0.9.2", + "posthtml": "^0.10.1", "posthtml-attrs-parser": "^0.1.1", "rollup-pluginutils": "^2.0.1", "typescript": "^2.4.1", - "vue-template-es2015-compiler": "^1.5.0", + "vue-template-es2015-compiler": "^1.6.0", "vue-template-validator": "^1.1.5" }, "devDependencies": { @@ -68,14 +68,14 @@ "eslint-plugin-promise": "^3.4.0", "eslint-plugin-standard": "^2.0.1", "istanbul": "^0.4.5", - "mocha": "^3.2.0", - "rollup": "^0.41.4", + "mocha": "^4.0.1", + "rollup": "^0.52.0", "rollup-plugin-babel": "^2.7.1", - "rollup-plugin-buble": "^0.15.0", + "rollup-plugin-buble": "^0.18.0", "rollup-plugin-css-only": "^0.2.0", - "rollup-plugin-replace": "^1.1.1", + "rollup-plugin-replace": "^2.0.0", "uglify-js": "^2.7.5", - "vue-template-compiler": "^2.4.4" + "vue-template-compiler": "^2.5.9" }, "optionalDependencies": { "coffee-script": "^1.12.4", diff --git a/src/options.js b/src/options.js index bd726f3..7445618 100644 --- a/src/options.js +++ b/src/options.js @@ -18,6 +18,7 @@ export default { customAttrSurround: [[/@/, new RegExp('')], [/:/, new RegExp('')]], collapseWhitespace: true, conservativeCollapse: true, + keepClosingSlash: true, removeComments: true }, diff --git a/test/expects/selfClosingComponent.js b/test/expects/selfClosingComponent.js new file mode 100644 index 0000000..ce3ad87 --- /dev/null +++ b/test/expects/selfClosingComponent.js @@ -0,0 +1,15 @@ +var evens = [2,4,6,8]; +var odds = evens.map(v => v + 1); +var Basic = { template: "