webpack.config.js 1.4 KB

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