dev.ts 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import type { UserConfigExport } from '@tarojs/cli';
  2. import path from 'path';
  3. import dotenv from 'dotenv';
  4. // 加载 .env.development 文件中的环境变量
  5. dotenv.config({ path: path.resolve(__dirname, '../.env.development') });
  6. export default {
  7. logger: {
  8. quiet: false,
  9. stats: true,
  10. },
  11. defineConstants: {
  12. MQTT_BROKER_URL_FROM_WEBPACK: '"ws://192.168.110.13:8083/mqtt"',
  13. },
  14. mini: {},
  15. h5: {
  16. sourceMapType: 'eval-source-map',
  17. publicPath: '/',
  18. devServer: {
  19. proxy: {
  20. '/dr': {
  21. target: 'http://192.168.110.13:6001', // 你的后端服务地址
  22. changeOrigin: true, // 允许跨域
  23. // pathRewrite: {
  24. // '^/dr/api': '' // 可选,用于重写路径
  25. // }
  26. },
  27. },
  28. server: 'https', // 启用 HTTPS ,为了开发环境测试打开摄像头功能
  29. host: '0.0.0.0', // 监听所有网络接口
  30. open: false, // 可选:是否自动打开浏览器
  31. port: 10086, // 可选:指定端口号
  32. static: {
  33. directory: path.resolve(__dirname, '../public'),
  34. },
  35. },
  36. // Use webpackChain to customize Webpack
  37. // eslint-disable-next-line
  38. webpackChain(chain, webpack) {
  39. // 读取环境变量,告诉webpack在打包时,使用环境变量中定义的值 替换掉代码中的process.env.USE_MSW
  40. // 打印环境变量,检查是否正确读取
  41. console.log('环境变量 process.env.USE_MSW:', process.env.USE_MSW);
  42. console.log('环境变量 process.env.NODE_ENV:', process.env.NODE_ENV);
  43. // 确保使用正确的值,直接从.env文件读取
  44. const useMSW = JSON.stringify(
  45. process.env.USE_MSW === 'true' ? 'true' : 'false'
  46. );
  47. console.log('使用的 useMSW 值:', useMSW);
  48. // 检查 define 插件是否已存在,如果不存在则先创建它
  49. const hasDefinePlugin = chain.plugins.has('define');
  50. if (!hasDefinePlugin) {
  51. chain.plugin('define').use(webpack.DefinePlugin, [{}]);
  52. }
  53. // 然后再修改插件配置
  54. chain.plugin('define').tap((args) => {
  55. // 确保args[0]存在
  56. if (!args[0]) {
  57. args[0] = {};
  58. }
  59. args[0]['process.env.USE_MSW'] = useMSW;
  60. console.log('DefinePlugin配置:', args[0]);
  61. return args;
  62. });
  63. chain.devServer.merge({
  64. setupMiddlewares: (middlewares, devServer) => {
  65. devServer.app.get('/mockServiceWorker.js', (req, res) => {
  66. res.set('Content-Type', 'application/javascript');
  67. res.sendFile(
  68. path.resolve(__dirname, '../public/mockServiceWorker.js')
  69. );
  70. });
  71. return middlewares;
  72. },
  73. });
  74. },
  75. },
  76. } satisfies UserConfigExport<'webpack5'>;