node.js - SyntaxError: Ovårdat tecken import - import * as gulp från 'gulp'


Om du kör gulp kommer du att få följande felmeddelande.

Är modulen som krävs för gulpfile inte installerad? ..

gulp
[22:17:15] Failed to load external module ts-node/register
[22:17:15] Failed to load external module typescript-node/register
[22:17:15] Failed to load external module typescript-register
[22:17:15] Failed to load external module typescript-require
C:\project\interview\gulpfile.ts:1
(function (exports, require, module, __filename, __dirname) { import * as gulp f                                 rom 'gulp';
                                                              ^^^^^^
SyntaxError: Unexpected token import
    at createScript (vm.js:56:10)
    at Object.runInThisContext (vm.js:97:10)
    at Module._compile (module.js:542:28)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Liftoff.handleArguments (C:\Users\admin\AppData\Roaming\npm\node_modules\gu                                 lp\bin\gulp.js:116:3)

Svar #1

Det finns 3 saker du behöver göra för att få gulp att fungera med ES6-importer:

  1. Byt namn på gulpfile.js till gulpfile.babel.js

  2. Kör detta kommando:

npm i @babel/preset-env @babel/register -D
  1. Lägg till en .babelrc-fil i roten av ditt projekt med följande kod i den:
{
  "presets": [
    "@babel/preset-env"
  ]
}

Du borde nu kunna använda ES6-importer i dina Gulp-filer.

Observera: om du istället vill använda TypeScript i dina Gulp-filer bör du följa de steg som beskrivs här:

https://stackoverflow.com/a/49849088/1611058

Svar #2

1) Skapa en ".babelrc"-fil i din projektmapp (där även alla dina andra konfigurationsfiler finns)

  • Kod (.babelrc)

    { "presets": ["es2015"] }

2) Installera/Setup Babel i ditt NPM (se https://babeljs.io/setup). T.ex. med Node:

npm install babel-preset-env --save-dev

Relaterade artiklar