webpack.config.js 1.4 KB

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