2017-10-16 1 views
0

J'essaye de mettre à jour vue js 2.5.2 avec le typecript 2.5.3.Vue js 2.5.2 & erreur de mise à jour de typecript

Voici le fichier my index.ts:

import Vue from 'vue' 

var app = new Vue({ 
    el: '#app', 
    data: { 
     message: 'Hello Vue!' 
    } 
}) 

Voici mon tsconfig.json

{ 
    "compilerOptions": { 
    "outDir": "./wwwroot/build/", 
    "noImplicitAny": false, 
    "noEmitOnError": true, 
    "removeComments": false, 
    "sourceMap": true, 
    "target": "es5", 
    "module": "es2015", 
    "moduleResolution": "node", 
    "lib": [ 
     "dom", 
     "es5", 
     "es2015.promise" 
    ], 
    "types": [ 
     "vue-typescript-import-dts" 
    ], 
    "experimentalDecorators": true 
    }, 
    "include": [ 
    "Features/**/*.ts" 
    ], 
    "exclude": [ 
    "node_modules", 
    "wwwroot" 
    ] 
} 

Et voici le message d'erreur:

erreur dans C : \ dev \ proj \ src \ Proj.Web \ node_modules \ vue-typescript-import-dts \ index.d.ts (3,36): erreur TS2304: Impossible de fi nd nom 'Vue'.

Ma configuration fonctionnait bien avec vue js 2.4.

éleminez les "allowSyntheticDefaultImports": true,as said here

Auparavant, nous recommandons déjà à l'aide des importations de style ES (importation Vue de 'vue') partout avec « allowSyntheticDefaultImports »: vrai dans tsconfig.json. Les nouveaux types vont officiellement passer à la syntaxe d'import/export de style ES, de sorte que la configuration ne soit plus nécessaire et que les utilisateurs doivent utiliser les importations de style ES dans tous les cas.

Quelqu'un voit-il ce que je manque?

Répondre

1

Je viens de démarrer un nouveau dossier dans VSCode et j'ai quelques observations.

Le package Vue sur NPM contient des informations de type, de sorte que vous n'avez pas besoin d'obtenir d'autres types de Vue (à savoir ne pas grab @types/vue de NPM).

"dependencies": { 
    "vue": "^2.5.2" 
} 

Avec juste le paquet vue, et sans la section:

"types": [ 
    "vue-typescript-import-dts" 
], 

je pourrais tout compiler très bien avec votre exemple de code.

détails ...

package.json

{ 
    "name": "sample-vue", 
    "private": true, 
    "dependencies": { 
     "vue": "^2.5.2" 
    } 
} 

tsconfig.json

{ 
    "compilerOptions": { 
     "outDir": "./wwwroot/build/", 
     "noImplicitAny": false, 
     "noEmitOnError": true, 
     "removeComments": false, 
     "sourceMap": true, 
     "target": "es5", 
     "module": "es2015", 
     "moduleResolution": "node", 
     "lib": [ 
      "dom", 
      "es5", 
      "es2015.promise" 
     ], 
     "experimentalDecorators": true 
    }, 
    "include": [ 
     "*.ts" 
    ], 
    "exclude": [ 
     "node_modules", 
     "wwwroot" 
    ] 
} 

app.ts

import Vue from 'vue' 

var app = new Vue({ 
    el: '#app', 
    data: { 
     message: 'Hello Vue!' 
    } 
}) 
+0

en supprimant la section types et allowSyntheticDefaultImports l'a fait! THX – Swell