webpack.node.config.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. 'use strict';
  2. const nodeExternals = require('webpack-node-externals');
  3. const webpack = require('webpack');
  4. const CheckerPlugin = require('awesome-typescript-loader').CheckerPlugin;
  5. const TSLintPlugin = require('tslint-webpack-plugin');
  6. const packageJson = require('pjson');
  7. const WebpackUtils = require('./utils/WebpackUtils').WebpackUtils;
  8. module.exports = {
  9. devtool: 'source-map',
  10. entry: {
  11. 'index': './index.ts',
  12. 'index.cli': './index.cli.ts'
  13. },
  14. target: 'node',
  15. externals: [nodeExternals()],
  16. module: {
  17. exprContextCritical: false,
  18. rules: [
  19. {
  20. test: /\.ts(x?)$/,
  21. loader: 'awesome-typescript-loader',
  22. query: {
  23. configFileName: 'src/tsconfig.node.json',
  24. useBabel: true,
  25. babelCore: '@babel/core',
  26. useCache: true,
  27. forceIsolatedModules: true
  28. }
  29. }
  30. ]
  31. },
  32. resolve: {
  33. extensions: ['.ts']
  34. },
  35. plugins: [
  36. new webpack.BannerPlugin(
  37. {
  38. banner: WebpackUtils.getBannerText(
  39. WebpackUtils.getLicenseText(),
  40. WebpackUtils.getSourceMapSupportImport()
  41. ),
  42. raw: true,
  43. entryOnly: false
  44. }
  45. ),
  46. new webpack.EnvironmentPlugin({
  47. VERSION: packageJson.version
  48. }),
  49. new CheckerPlugin(),
  50. new TSLintPlugin({
  51. files: ['./src/**/*.ts'],
  52. project: './src/tsconfig.node.json',
  53. exclude: []
  54. })
  55. ],
  56. output: {
  57. libraryTarget: 'commonjs2',
  58. library: 'JavaScriptObfuscator'
  59. },
  60. stats: {
  61. maxModules: 0
  62. }
  63. };