const path = require('path');
// npm run dev:taro:weapp [jdt|jddkh|jdt]
const themeMap = {
  jdb: 'variables-jdb.scss',
  jddkh: 'variables-jddkh.scss',
  jdt: 'variables-jdt.scss'
};
const lastArg = process.argv[process.argv.length - 1];
const theme = themeMap[lastArg] || 'variables.scss';

const config = {
  projectName: '@nutui/nutui-taro-mobile',
  date: '2021-5-29',
  designWidth: 375,
  deviceRatio: {
    640: 2.34 / 2,
    750: 1,
    828: 1.81 / 2,
    375: 2 / 1
  },
  sourceRoot: 'src',
  outputRoot: 'dist',
  plugins: ['@tarojs/plugin-html'],
  alias: {
    '@vue': path.resolve(__dirname, '../../../../../node_modules/@vue'),
    '@/packages': path.resolve(__dirname, '../../../../../src/packages')
  },
  sass: {
    resource: path.resolve(__dirname, '../../../../', 'packages/styles', theme)
  },
  defineConstants: {},
  copy: {
    patterns: [],
    options: {}
  },
  framework: 'vue3',
  compiler: 'webpack5',
  mini: {
    postcss: {
      pxtransform: {
        enable: true,
        config: {}
      },
      url: {
        enable: true,
        config: {
          limit: 1024 // 设定转换尺寸上限
        }
      },
      cssModules: {
        enable: false, // 默认为 false，如需使用 css modules 功能，则设为 true
        config: {
          namingPattern: 'module', // 转换模式，取值为 global/module
          generateScopedName: '[name]__[local]___[hash:base64:5]'
        }
      }
    }
  },
  h5: {
    publicPath: '/',
    staticDirectory: 'static',
    postcss: {
      autoprefixer: {
        enable: true,
        config: {}
      },
      pxtransform: {
        enable: true,
        config: { selectorBlackList: ['nut-'] }
      },
      cssModules: {
        enable: false, // 默认为 false，如需使用 css modules 功能，则设为 true
        config: {
          namingPattern: 'module', // 转换模式，取值为 global/module
          generateScopedName: '[name]__[local]___[hash:base64:5]'
        }
      }
    }
  }
};

module.exports = function (merge) {
  if (process.env.NODE_ENV === 'development') {
    return merge({}, config, require('./dev'));
  }
  return merge({}, config, require('./prod'));
};
