Pourquoi suis-je “Unexpected token importer” sur un webpack projet, mais pas les autres?
J'ai 2 projets qui fonctionnent différemment et je ne peux pas dire ce qui est différent. J'ai le texte suivant sur un projet...
//In .ts wile
import 'core-js/es6';
import 'reflect-metadata';
Cela fonctionne très bien sur un projet, cependant, un autre projet avec le même tsconfig.json et typings.json ainsi que le ts-chargeur configuré dans le webpack config-je obtenir...
Uncaught SyntaxError: Unexpected token importation
La transpiled JS sur la faute de l'un ressemble à...
/***/ function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {import 'core-js/es6';
import 'reflect-metadata';
Je vais poster le réussir un projet, dans un peu
Donc ma question est ce qui me manque? Sont le tapuscrit définitions de ne pas être correctement importés? J'ai déjà essayé de courir typings install
encore une fois juste à la règle.
Plus D'Infos
//tsconfig
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true
}
}
//Typings.json
{
"globalDependencies": {
"core-js": "registry:dt/core-js#0.0.0+20160602141332",
"jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
"node": "registry:dt/node#6.0.0+20160621231320"
}
}
Donc ce qui est différent entre les deux projets? Il ressemble à un le tapuscrit est pas compilé avant l'emballage.
Je suis d'accord mais il compile bien sur le premier projet
Une chance pour webpack de configuration?
Je suis d'accord mais il compile bien sur le premier projet
Une chance pour webpack de configuration?
OriginalL'auteur Jackie | 2016-08-02
Vous devez vous connecter pour publier un commentaire.
J'ai eu un problème similaire où j'ai été en utilisant async\attendent et les Promesses (les deux ES6 constructions) en utilisant le mot-clé import dans le ts fichiers source à importer d'autres ts les modules.
Je pourrais transpile avec la Machine à l'aide de la valeur par défaut js version cible (ES5) qui produit transpile erreurs se plaindre de la async\attendent et la Promesse des mots-clés, mais depuis que je suis effectivement en cours d'exécution Nœud 6.4.0. en fait, tout fonctionne au moment de l'exécution.
Dans le cas décrit ci-dessus, l '"Importation" mot-clé a été traduit à partir de ts js:
Donc, je suis tsc transpile erreurs, mais le Nœud fonctionne très bien lors de l'exécution avec le ci-dessus '"Importation" de la traduction.
Si j'utilise le commutateur-t pour dire tsc à transpile à ES6 puis le transpile est propre avec aucune erreur, mais alors Nœud échoue parce qu'il dit ne pas comprendre l '"Importation" de mots clés dans les émissions de fichier js.
Maintenant, tsc émet la traduction suivante pour "Importer":
Donc, la traduction ci-dessus n'est pas vraiment une traduction à tous et Nœud étouffe sur le fichier js avec l '"Importation" de mots clés lors de l'exécution.
Résumé:
J'ai résolu cette énigme à l'aide de cette ligne de commande à dire tsc à utiliser ES6 bibliothèques, mais d'émettre le bon module d'importation de syntaxe:
J'ai maintenant nettoyer transpile et pas d'erreurs à l'exécution du Nœud. Parce que maintenant
'Import'
est correctement traduite à l'aide de la'require'
mot réservé.Plus de détails ici:
https://www.typescriptlang.org/docs/handbook/compiler-options.html
https://www.typescriptlang.org/docs/handbook/module-resolution.html
Explicitement, ajoutez cette ligne dans le tsconfig fichier
"module": "commonjs"
OriginalL'auteur Vance McCorkle
addendum à la accepté de répondre à pour l'animation de programmeur, l'option de ligne de commande peut également être faite à l'intérieur de
tsconfig.json
fichier:OriginalL'auteur Cezar Augusto