Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

webpack.s3m.conf.js 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /**
  2. * @Author: Caven
  3. * @Date: 2021-03-14 00:41:29
  4. */
  5. 'use strict'
  6. const path = require('path')
  7. const webpack = require('webpack')
  8. const JavaScriptObfuscator = require('webpack-obfuscator')
  9. const common = require('./common')
  10. module.exports = env => {
  11. const IS_PROD = (env && env.production) || false
  12. const publicPath = IS_PROD ? '/' : '/'
  13. let plugins = [...common.plugins]
  14. if (IS_PROD) {
  15. plugins.push(new webpack.NoEmitOnErrorsPlugin())
  16. plugins.push(
  17. new JavaScriptObfuscator(
  18. {
  19. rotateStringArray: true
  20. },
  21. []
  22. )
  23. )
  24. }
  25. return {
  26. entry: {
  27. 'dc.s3m': ['entry']
  28. },
  29. devtool: IS_PROD ? false : 'cheap-module-eval-source-map',
  30. output: {
  31. filename: IS_PROD ? '[name].min.js' : '[name].js',
  32. path: path.resolve(__dirname, '..', 'packages/s3m/dist'),
  33. publicPath: publicPath,
  34. library: 'DcS3M',
  35. libraryExport: 'default',
  36. libraryTarget: 'umd',
  37. umdNamedDefine: true
  38. },
  39. module: {
  40. unknownContextCritical: false,
  41. rules: [
  42. {
  43. test: /\.js$/,
  44. exclude: /node_modules/,
  45. loader: 'babel-loader',
  46. options: {
  47. presets: ['@babel/preset-env'],
  48. compact: false,
  49. ignore: ['checkTree']
  50. }
  51. }
  52. ]
  53. },
  54. resolve: {
  55. extensions: ['.js', '.json', '.css'],
  56. alias: {
  57. '@dc-modules': path.resolve(__dirname, '..', 'modules'),
  58. 's3m-lib': path.resolve(__dirname, '..', 'libs/s3m'),
  59. entry: path.resolve(__dirname, '..', 'packages/s3m/index.js')
  60. }
  61. },
  62. plugins
  63. }
  64. }