webpack.config.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. const path = require('path')
  2. const nodeExternals = require('webpack-node-externals')
  3. module.exports = {
  4. entry: {
  5. 'api/cli': './src/api/cli.ts',
  6. 'api/init': './src/api/init.ts',
  7. 'api/tauricon': './src/api/tauricon.ts',
  8. 'api/info': './src/api/info.ts',
  9. 'api/dependency-manager': './src/api/dependency-manager/index.ts',
  10. 'helpers/spawn': './src/helpers/spawn.ts',
  11. 'helpers/rust-cli': './src/helpers/rust-cli.ts'
  12. },
  13. mode: process.env.NODE_ENV || 'development',
  14. devtool: 'source-map',
  15. module: {
  16. rules: [
  17. {
  18. test: /\.tsx?$/,
  19. use: 'ts-loader',
  20. exclude: /node_modules/
  21. },
  22. {
  23. test: /(templates|api)[\\/].+\.js/,
  24. use: 'raw-loader'
  25. },
  26. {
  27. test: /\.toml?$/,
  28. use: 'toml-loader'
  29. }
  30. ]
  31. },
  32. node: false,
  33. resolve: {
  34. extensions: ['.ts', '.js']
  35. },
  36. output: {
  37. library: 'tauri',
  38. libraryTarget: 'umd',
  39. filename: '[name].js',
  40. path: path.resolve(__dirname, 'dist')
  41. },
  42. externals: [nodeExternals()],
  43. target: 'node'
  44. }
  45. function schemaParser(schemaName, content) {
  46. const lines = content.split('\n')
  47. const output = []
  48. for (const line of lines) {
  49. if (line === `export const ${schemaName} = {`) {
  50. output.push('{')
  51. } else if (output.length) {
  52. if (line === '}') {
  53. output.push('}')
  54. break
  55. }
  56. output.push(line)
  57. }
  58. }
  59. const json = output.join('\n')
  60. const object = eval(`(${json})`)
  61. return JSON.stringify(object, null, 2)
  62. }