vue-unicons icon indicating copy to clipboard operation
vue-unicons copied to clipboard

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

Open duktiga-havet opened this issue 5 years ago • 6 comments

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.

duktiga-havet avatar Dec 14 '19 13:12 duktiga-havet

It's a problem with this lib.

Abandoned project?

rafalolszewski94 avatar Jan 04 '20 16:01 rafalolszewski94

I dodged it by rebuilding my project without typescript

duktiga-havet avatar Jan 05 '20 08:01 duktiga-havet

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 avatar May 29 '20 13:05 davestewart

Proper bundling may solve this; see #34

davestewart avatar May 29 '20 14:05 davestewart

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.

kmycode avatar Jul 25 '20 05:07 kmycode

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! 👀

geopic avatar Nov 19 '20 23:11 geopic