aurelia / i18n

A plugin that provides i18n support.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

i18next 'has no exported member' errors

davidsk opened this issue · comments

I'm submitting a bug report

  • Library Version:
    3.0.0-beta.4

Please tell us about your environment:

  • Operating System:
    Windows 10

  • Node Version:
    8.11.3

  • NPM Version:
    6.3.0
  • JSPM OR Webpack AND Version
    JSPM 0.16.32 | webpack 2.1.0-beta.17
    Neither, using the new autotracing bundler
  • Browser:
    Chrome 71.0.3578.98

  • Language:
    TypeScript 2.9.2

Current behavior:
Several 'has not exported member' errors generated during typescript compilation

Expected/desired behavior:
No type definition errors generated during typescript compilation.

  • What is the expected behavior?
    No type definition errors generated during typescript compilation

  • What is the motivation / use case for changing the behavior?
    No 'red herrings' during development

  • Additional info
    Substituting

import * as i18next from 'i18next';

with

import i18next from 'i18next';

in the aurelia-i18n.d.ts file seems to fix the problem.

Sample project: https://github.com/davidsk/Aurelia-i18n_292

C:/temp/Aurelia-i18n_292> npm install
*** npm output removed ***
C:/temp/Aurelia-i18n_292> au run
Starting 'readProjectConfiguration'...
Finished 'readProjectConfiguration'
Starting 'processMarkup'...
Starting 'processCSS'...
Starting 'copyFiles'...
Starting 'configureEnvironment'...
Finished 'copyFiles'
Finished 'processCSS'
Finished 'processMarkup'
Finished 'configureEnvironment'
Starting 'buildTypeScript'...
C:/temp/Aurelia-i18n_292/node_modules/aurelia-i18n/dist/aurelia-i18n.d.ts(8,57): error TS2694: Namespace '"C:/temp/Aurel
ia-i18n_292/node_modules/i18next/index"' has no exported member 'InitOptions'.
[21:12:15] gulp-notify: [Error running Gulp] Error: C:/temp/Aurelia-i18n_292/node_modules/aurelia-i18n/dist/aurelia-i18n
.d.ts(8,57): error TS2694: Namespace '"C:/temp/Aurelia-i18n_292/node_modules/i18next/index"' has no exported member 'Ini
tOptions'.
C:/temp/Aurelia-i18n_292/node_modules/aurelia-i18n/dist/aurelia-i18n.d.ts(12,57): error TS2694: Namespace '"C:/temp/Aure
lia-i18n_292/node_modules/i18next/index"' has no exported member 'i18n'.
[21:12:15] gulp-notify: [Error running Gulp] Error: C:/temp/Aurelia-i18n_292/node_modules/aurelia-i18n/dist/aurelia-i18n
.d.ts(12,57): error TS2694: Namespace '"C:/temp/Aurelia-i18n_292/node_modules/i18next/index"' has no exported member 'i1
8n'.
C:/temp/Aurelia-i18n_292/node_modules/aurelia-i18n/dist/aurelia-i18n.d.ts(29,51): error TS2694: Namespace '"C:/temp/Aure
lia-i18n_292/node_modules/i18next/index"' has no exported member 'InitOptions'.
[21:12:15] gulp-notify: [Error running Gulp] Error: C:/temp/Aurelia-i18n_292/node_modules/aurelia-i18n/dist/aurelia-i18n
.d.ts(29,51): error TS2694: Namespace '"C:/temp/Aurelia-i18n_292/node_modules/i18next/index"' has no exported member 'In
itOptions'.
C:/temp/Aurelia-i18n_292/node_modules/aurelia-i18n/dist/aurelia-i18n.d.ts(31,45): error TS2694: Namespace '"C:/temp/Aure
lia-i18n_292/node_modules/i18next/index"' has no exported member 'TranslationFunction'.
[21:12:15] gulp-notify: [Error running Gulp] Error: C:/temp/Aurelia-i18n_292/node_modules/aurelia-i18n/dist/aurelia-i18n
.d.ts(31,45): error TS2694: Namespace '"C:/temp/Aurelia-i18n_292/node_modules/i18next/index"' has no exported member 'Tr
anslationFunction'.
C:/temp/Aurelia-i18n_292/node_modules/aurelia-i18n/dist/aurelia-i18n.d.ts(36,47): error TS2694: Namespace '"C:/temp/Aure
lia-i18n_292/node_modules/i18next/index"' has no exported member 'TranslationOptions'.
[21:12:15] gulp-notify: [Error running Gulp] Error: C:/temp/Aurelia-i18n_292/node_modules/aurelia-i18n/dist/aurelia-i18n
.d.ts(36,47): error TS2694: Namespace '"C:/temp/Aurelia-i18n_292/node_modules/i18next/index"' has no exported member 'Tr
anslationOptions'.
C:/temp/Aurelia-i18n_292/node_modules/aurelia-i18n/dist/aurelia-i18n.d.ts(173,39): error TS2694: Namespace '"C:/temp/Aur
elia-i18n_292/node_modules/i18next/index"' has no exported member 'TranslationOptions'.
[21:12:15] gulp-notify: [Error running Gulp] Error: C:/temp/Aurelia-i18n_292/node_modules/aurelia-i18n/dist/aurelia-i18n
.d.ts(173,39): error TS2694: Namespace '"C:/temp/Aurelia-i18n_292/node_modules/i18next/index"' has no exported member 'T
ranslationOptions'.
TypeScript: 6 semantic errors
...

@bigopon remember that you added the fix for the star import? Was there a specific reason? Guess because of tsconfig settings right?

i18next used to be distributed without a type definition with it, and in its separate typing package at @types/i18next, the main typing i18next was exported as a module. Since version 12, it seems this has been changed. Now it's a default export. Checking both versions 13 and 12 of i18next, I think it's safe to change the generated code to

import i18next from 'i18next';

from

import * as i18next from 'i18next';

as it seems this is the way to go.

Alright, last but not least can you provide us your tsconfig.json contents @davidsk, just to make sure there are no special setups in place

Sure. It was created via the CLI and I haven't edited it so I imagine it's pretty standard.

{
  "compileOnSave": false,
  "compilerOptions": {
    "sourceMap": true,
    "target": "es5",
    "module": "amd",
    "declaration": false,
    "noImplicitAny": false,
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "allowJs": true,
    "moduleResolution": "node",
    "lib": ["es2017", "dom"],
    "baseUrl": "src"
  },
  "include": [
    "./src/**/*.ts",
    "./test/**/*.ts",
    "./custom_typings/**/*.d.ts"
  ],
  "atom": {
    "rewriteTsconfig": false
  }
}

Thanks for the feedback. I've merged the PR to fix this. Will be available with the next release