webpack.config.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. 'use strict';
  2. const fs = require("fs");
  3. const nodeExternals = require('webpack-node-externals');
  4. const webpack = require('webpack');
  5. const CheckerPlugin = require('awesome-typescript-loader').CheckerPlugin;
  6. function getLicenseText () {
  7. return "/*\nCopyright (C) 2017 Timofey Kachalov <[email protected]>\n\n" +
  8. fs.readFileSync('./LICENSE.BSD', 'utf8') + "\n*/";
  9. }
  10. module.exports = {
  11. entry: {
  12. 'index': './index.ts'
  13. },
  14. cache: true,
  15. devtool: 'source-map',
  16. target: 'node',
  17. externals: [nodeExternals()],
  18. module: {
  19. rules: [
  20. {
  21. enforce: 'pre',
  22. test: /\.ts$/,
  23. loader: 'tslint-loader',
  24. exclude: /(node_modules)/
  25. },
  26. {
  27. test: /\.ts(x?)$/,
  28. loader: 'awesome-typescript-loader',
  29. query: {
  30. useBabel: true,
  31. useCache: true
  32. }
  33. }
  34. ]
  35. },
  36. resolve: {
  37. extensions: ['.ts']
  38. },
  39. plugins: [
  40. new webpack.BannerPlugin(
  41. {
  42. banner: getLicenseText() + '\n\nrequire("source-map-support").install();\n',
  43. raw: true,
  44. entryOnly: false
  45. }
  46. ),
  47. new CheckerPlugin()
  48. ],
  49. output: {
  50. path: __dirname + '/dist',
  51. filename: '[name].js',
  52. libraryTarget: "commonjs2",
  53. library: "JavaScriptObfuscator"
  54. },
  55. stats: {
  56. maxModules: 0
  57. }
  58. };