jasmine-html.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. var util = require('util');
  2. var path = require('path');
  3. var fs = require('fs');
  4. var HtmlWebpackPlugin = require('html-webpack-plugin');
  5. var jasmineCore = require('jasmine-core');
  6. var jasmineFiles = jasmineCore.files;
  7. var jasminePath = toRelativePath(jasmineFiles.path);
  8. var jasmineBootDir = toRelativePath(jasmineFiles.bootDir);
  9. function JasmineWebpackPlugin(options) {
  10. options = options || {};
  11. return new HtmlWebpackPlugin({
  12. inject: true,
  13. filename: options.filename || 'SpecRunner.html',
  14. template: path.join(__dirname, 'template.ejs'),
  15. baseJasminePath: options.baseJasminePath || '',
  16. jasmineJsFiles: toRelativeFiles(jasminePath, jasmineFiles.jsFiles).concat(toRelativeFiles(jasmineBootDir, jasmineFiles.bootFiles)),
  17. jasmineCssFiles: toRelativeFiles(jasminePath, jasmineFiles.cssFiles),
  18. externalJsFiles: options.externalJsFiles || [],
  19. externalCssFiles: options.externalCssFiles || [],
  20. minify: false,
  21. });
  22. }
  23. function toRelativePath(dirname) {
  24. return dirname.replace(process.cwd(), '').replace(/^\//, '');
  25. }
  26. function toRelativeFiles(dirname, files) {
  27. return files.map(function(file) {
  28. return path.join(dirname, file);
  29. });
  30. }
  31. module.exports = JasmineWebpackPlugin;