index.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import path from 'path';
  2. import unpluginVueComponents from 'unplugin-vue-components/webpack';
  3. import { VantResolver } from 'unplugin-vue-components/resolvers';
  4. export default function () {
  5. // this.
  6. // console.log(this.options);
  7. // console.log(this.nuxt);
  8. this.nuxt.hook('build:before', (nuxt, buildOptions) => {
  9. // console.log(
  10. // '🚀 ~ file: index.js ~ line 12 ~ this.nuxt.hook ~ buildOptions',
  11. // ,
  12. // );
  13. // console.log(buildOptions.loaders.less);
  14. buildOptions.loaders.less.lessOptions = {
  15. modifyVars: {
  16. // 直接覆盖变量
  17. // 'text-color': '#111',
  18. // 'border-color': '#eee',
  19. hack: `true; @import "${path.resolve(__dirname, 'var.less')}";`,
  20. },
  21. };
  22. // console.log();
  23. // buildOptions.build.extend
  24. // console.log(
  25. // '🚀 ~ file: index.js ~ line 9 ~ this.nuxt.hook ~ buildOptions.build.extend',
  26. // buildOptions.extend,
  27. // );
  28. // buildOptions.extend.push((config, { isClient, loaders: { less } }) => {
  29. // console.log(less);
  30. // });
  31. buildOptions.plugins.push(
  32. unpluginVueComponents({
  33. resolvers: [
  34. VantResolver({
  35. importStyle: 'less',
  36. }),
  37. ],
  38. }),
  39. );
  40. buildOptions.babel.plugins.push([
  41. 'import',
  42. {
  43. libraryName: 'vant',
  44. libraryDirectory: 'es',
  45. style: (name) => `${name}/style/less`,
  46. },
  47. 'vant',
  48. ]);
  49. buildOptions.loaders = buildOptions.loaders ?? {};
  50. buildOptions.loaders.vue = buildOptions.loaders.vue ?? {};
  51. buildOptions.loaders.vue.transformAssetUrls =
  52. buildOptions.loaders.vue.transformAssetUrls ?? {};
  53. buildOptions.loaders.vue.transformAssetUrls['van-image'] = 'src';
  54. });
  55. // this.nuxt.hook('build:before', (nuxt, buildOptions) => {});
  56. // this.nuxt.hook('webpack:config', (webpackConfigs) => {
  57. // console.log(
  58. // '🚀 ~ file: index.js ~ line 17 ~ this.nuxt.hook ~ webpackConfigs',
  59. // webpackConfigs.module,
  60. // );
  61. // });
  62. // this.nuxt.hook('build:before', (nuxt, buildOptions) => {});
  63. // this.nuxt.hook('components:dirs', (dirs) => {
  64. // dirs.push({
  65. // path: 'vant/es',
  66. // level: 1,
  67. // pattern: '*/index.js',
  68. // ignore: ['utils/index.js'],
  69. // prefix: 'van',
  70. // });
  71. // });
  72. this.addPlugin(path.resolve(__dirname, 'plugin.js'));
  73. }