antonreshetov / vue-unicons

1000+ Pixel-perfect svg icons for your next project as Vue components
https://antonreshetov.github.io/vue-unicons/
MIT License
996 stars 54 forks source link

Error: Invalid module name in augmentation - Module 'vue-unicons/src/icons' resolves to an untyped module #21

Open duktiga-havet opened 4 years ago

duktiga-havet commented 4 years ago

I'm getting the error below using vue-unicons in a Nuxt project with typescript.

ERROR in .../node_modules/vue-unicons/src/main.d.ts                                                                                  
Invalid module name in augmentation. Module 'vue-unicons/src/icons' resolves to an untyped module at '.../node_modules/vue-unicons/src/icons.js', which cannot be augmented.

  >   | declare module "vue-unicons/src/icons" {
      |                ^
      |   export const icons: { name: string; path: string }
      | }

I'm using the latest versions of vue-unicons (2.0.3), Nuxt (2.10.2) and nuxt/typescript (2.8.1).

I loaded it by writing the Nuxt vue plugin below:

import Vue from 'vue'
import Unicon from 'vue-unicons'
import { uniLayerGroupMonochrome, uniCarWash } from 'vue-unicons/src/icons'
Unicon.add([uniLayerGroupMonochrome, uniCarWash])
Vue.use(Unicon)

The icons do appear but I can't make that error go away. Any idea how to look into this more deeply?

I'm not sure whether it's a problem with vue-unicons or with @nuxt/typescript or my code.

rafalolszewski94 commented 4 years ago

It's a problem with this lib.

Abandoned project?

duktiga-havet commented 4 years ago

I dodged it by rebuilding my project without typescript

davestewart commented 4 years ago

Getting the same thing as well.

Sadly, this nukes my production build, so I won't be able to use the lib.

Should this be prioritised to be fixed @antonreshetov ?

davestewart commented 4 years ago

Proper bundling may solve this; see #34

kmycode commented 4 years ago

I created mainjs.js file.

import Vue from 'vue';
import Unicon from 'vue-unicons';

import { uniSave, uniBars, uniAngleLeftB, uniAngleLeft, uniListUl, uniBookOpen, uniBookAlt, uniHdd, uniCloud } from 'vue-unicons/src/icons.js';
Unicon.add([uniSave, uniBars, uniAngleLeftB, uniAngleLeft, uniListUl, uniBookOpen, uniBookAlt, uniHdd, uniCloud]);
Vue.use(Unicon);

Next, add following line in main.ts.

import './mainjs';

It works in my project.

geopic commented 3 years ago

An update has been pushed which should fix all of the problems you guys have had. As I said in the PR, if there are any issues then let me know. Apologies for the wait, I see it's been a while! 👀