webpack.config.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. const path = require('path')
  2. const webpack = require('webpack')
  3. const fs = require('fs')
  4. const CopyPlugin = require('copy-webpack-plugin')
  5. module.exports = {
  6. entry: './src/index.js',
  7. output: {
  8. libraryTarget: 'commonjs',
  9. filename: 'index.js',
  10. path: path.resolve(__dirname, 'miniprogram_dist'),
  11. },
  12. devtool: '',
  13. module: {
  14. rules: [{
  15. test: /\.js$/i,
  16. use: [{
  17. loader: 'eslint-loader',
  18. }, {
  19. loader: 'babel-loader',
  20. options: {
  21. presets: ['@babel/preset-env'],
  22. plugins: ['@babel/plugin-proposal-class-properties'],
  23. },
  24. }, {
  25. loader: 'string-replace-loader',
  26. options: {
  27. multiple: [{
  28. search: `'__LOTTIE_CANVAS__'`,
  29. replace: fs.readFileSync('./node_modules/lottie-web/build/player/lottie_canvas.js', {encoding: 'utf8'}),
  30. }, {
  31. search: '__[STANDALONE]__',
  32. replace: '',
  33. }]
  34. }
  35. }],
  36. exclude: /node_modules/
  37. }]
  38. },
  39. amd: false,
  40. plugins: [
  41. new webpack.DefinePlugin({
  42. 'define': {}
  43. }),
  44. new webpack.optimize.ModuleConcatenationPlugin(),
  45. new CopyPlugin({
  46. patterns: [
  47. {
  48. from: path.resolve(__dirname, 'src', 'index.d.ts'),
  49. to: path.resolve(__dirname, 'miniprogram_dist', 'index.d.ts')
  50. },
  51. ],
  52. }),
  53. ],
  54. }