webpack.tests.config.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. /*global path, __dirname, module, process */
  2. 'use strict'
  3. const minimist = require('minimist');
  4. const path = require('path');
  5. const webpack = require('webpack');
  6. const config = {
  7. entry: path.resolve(__dirname, 'tests/runner.js'),
  8. externals: [{
  9. "window": "window"
  10. }],
  11. output: {
  12. path: path.resolve(__dirname, 'tests'),
  13. filename: 'tests-bundle.js'
  14. },
  15. devtool: 'source-map',
  16. plugins: [
  17. new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
  18. new webpack.ProvidePlugin({
  19. 'jasmineRequire': path.resolve(__dirname, "node_modules/jasmine-core/lib/jasmine-core/jasmine"),
  20. })
  21. ],
  22. module: {
  23. rules: [
  24. {
  25. test: path.resolve(__dirname, "node_modules/backbone.overview/backbone.orderedlistview"),
  26. use: 'imports-loader?backbone.nativeview'
  27. },
  28. {
  29. test: path.resolve(__dirname, "node_modules/backbone.overview/backbone.overview"),
  30. use: 'imports-loader?backbone.nativeview'
  31. },
  32. {
  33. test: path.resolve(__dirname, "node_modules/backbone.vdomview/backbone.vdomview"),
  34. use: 'imports-loader?backbone.nativeview'
  35. },
  36. {
  37. test: path.resolve(__dirname, "node_modules/awesomplete-avoid-xss/awesomplete"),
  38. use: "exports-loader?Awesomplete"
  39. },
  40. {
  41. test: path.resolve(__dirname, "node_modules/xss/dist/xss"),
  42. use: "exports-loader?filterXSS,filterCSS"
  43. },
  44. {
  45. test: /\.(html|svg)$/,
  46. exclude: /node_modules/,
  47. use: [{
  48. loader: 'lodash-template-webpack-loader',
  49. options: {
  50. "escape": /\{\{\{([\s\S]+?)\}\}\}/g,
  51. "evaluate": /\{\[([\s\S]+?)\]\}/g,
  52. "interpolate": /\{\{([\s\S]+?)\}\}/g,
  53. // By default, template places the values from your data in the
  54. // local scope via the with statement. However, you can specify
  55. // a single variable name with the variable setting. This can
  56. // significantly improve the speed at which a template is able
  57. // to render.
  58. "variable": 'o',
  59. "prependFilenameComment": __dirname
  60. }
  61. }]
  62. }, {
  63. test: /\.js$/,
  64. exclude: /(node_modules|spec|mockup)/,
  65. use: {
  66. loader: 'babel-loader',
  67. options: {
  68. presets: [
  69. ["@babel/preset-env", {
  70. "targets": {
  71. "browsers": [">1%", "not ie 11", "not op_mini all"]
  72. }
  73. }]
  74. ]
  75. }
  76. }
  77. }],
  78. },
  79. resolve: {
  80. extensions: ['.js'],
  81. modules: [
  82. 'node_modules',
  83. path.resolve(__dirname, "src")
  84. ],
  85. alias: {
  86. "IPv6": path.resolve(__dirname, "node_modules/urijs/src/IPv6"),
  87. "SecondLevelDomains": path.resolve(__dirname, "node_modules/urijs/src/SecondLevelDomains"),
  88. "awesomplete": path.resolve(__dirname, "node_modules/awesomplete-avoid-xss/awesomplete"),
  89. "bootstrap": path.resolve(__dirname, "node_modules/bootstrap.native/dist/bootstrap-native-v4"),
  90. "formdata-polyfill": path.resolve(__dirname, "node_modules/formdata-polyfill/FormData"),
  91. "jquery": path.resolve(__dirname, "node_modules/jquery/dist/jquery"),
  92. "pluggable": path.resolve(__dirname, "node_modules/pluggable.js/dist/pluggable"),
  93. "punycode": path.resolve(__dirname, "node_modules/urijs/src/punycode"),
  94. "snabbdom": path.resolve(__dirname, "node_modules/snabbdom/dist/snabbdom"),
  95. "snabbdom-attributes": path.resolve(__dirname, "node_modules/snabbdom/dist/snabbdom-attributes"),
  96. "snabbdom-class": path.resolve(__dirname, "node_modules/snabbdom/dist/snabbdom-class"),
  97. "snabbdom-dataset": path.resolve(__dirname, "node_modules/snabbdom/dist/snabbdom-dataset"),
  98. "snabbdom-eventlisteners": path.resolve(__dirname, "node_modules/snabbdom/dist/snabbdom-eventlisteners"),
  99. "snabbdom-props": path.resolve(__dirname, "node_modules/snabbdom/dist/snabbdom-props"),
  100. "snabbdom-style": path.resolve(__dirname, "node_modules/snabbdom/dist/snabbdom-style"),
  101. "tovnode": path.resolve(__dirname, "node_modules/snabbdom/dist/tovnode"),
  102. "underscore": path.resolve(__dirname, "src/underscore-shim"),
  103. "uri": path.resolve(__dirname, "node_modules/urijs/src/URI"),
  104. "vdom-parser": path.resolve(__dirname, "node_modules/vdom-parser/dist"),
  105. "xss": path.resolve(__dirname, "node_modules/xss/dist/xss"),
  106. "mock": path.resolve(__dirname, "tests/mock"),
  107. "test-utils": path.resolve(__dirname, "tests/utils"),
  108. "jasmine": path.resolve(__dirname, "tests/jasmine"),
  109. }
  110. }
  111. }
  112. module.exports = config;