tutorial standalone register node javascript node.js ecmascript-6 babeljs package.json

javascript - standalone - install babel 7



¿Importación de token inesperada en Nodejs5 y babel? (14)

En el archivo js, ​​solía importar en lugar de requerir

import co from ''co'';

E intenté ejecutarlo directamente por nodejs ya que decía que la importación es ''características de envío'' y soporte sin ningún indicador de tiempo de ejecución ( https://nodejs.org/en/docs/es6/ ), pero recibí un error

import co from ''co''; ^^^^^^ SyntaxError: Unexpected token import

Entonces traté de usar babel

npm install -g babel-core npm install -g babel-cli npm install babel-core //install to babel locally, is it necessary?

y dirigido por

babel-node js.js

¿Todavía tiene el mismo error, importación de token inesperada?

¿Cómo podría deshacerme de él?


  1. Instalar paquetes: babel-core , babel-polyfill , babel-preset-es2015
  2. Cree .babelrc con contenido: { "presets": ["es2015"] }
  3. No coloque la declaración de import en su archivo de entrada principal, use otro archivo, por ejemplo: app.js y su archivo de entrada principal debe requerir babel-core/register y babel-polyfill para que Babel funcione por separado antes que nada. Entonces puede requerir app.js donde la declaración de import .

Ejemplo:

index.js

require(''babel-core/register''); require(''babel-polyfill''); require(''./app'');

app.js

import co from ''co'';

Debería funcionar con el node index.js .


@jovi todo lo que necesitas hacer es agregar un archivo .babelrc como este:

{ "plugins": [ "transform-strict-mode", "transform-es2015-modules-commonjs", "transform-es2015-spread", "transform-es2015-destructuring", "transform-es2015-parameters" ] }

e instale estos complementos como dependencias con npm.

luego intente babel-node ***. js nuevamente. Espero que esto le pueda ayudar.


De las notas de lanzamiento de babel 6:

Dado que Babel se está centrando en ser una plataforma para herramientas de JavaScript y no un transpilador ES2015, hemos decidido hacer que todos los complementos sean opcionales. Esto significa que cuando instale Babel, ya no transpilará su código ES2015 de forma predeterminada.

En mi configuración instalé el preset es2015

npm install --save-dev babel-preset-es2015

o con hilo

yarn add babel-preset-es2015 --dev

y habilité el preset en mi .babelrc

{ "presets": ["es2015"] }


El método actual es usar:

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

Y luego en .babelrc

{ "presets": ["env"] }

esto instala el soporte de Babel para la última versión de js (es2015 y más allá) Mira babeljs

No olvide agregar babel-node a sus scripts dentro de package.json use cuando ejecute su archivo js de la siguiente manera.

"scripts": { "test": "mocha", //Add this line to your scripts "populate": "node_modules/babel-cli/bin/babel-node.js" },

Ahora puede npm populate yourfile.js dentro de la terminal.

Si está ejecutando Windows y ejecuta un comando interno o externo de error no reconocido, use el nodo delante del script de la siguiente manera

node node_modules/babel-cli/bin/babel-node.js

Entonces npm run populate


En su aplicación, debe declarar sus módulos require() , no utilizando la palabra clave ''importar'':

const app = require("example_dependency");

Luego, cree un archivo .babelrc:

{ "presets": [ ["es2015", { "modules": false }] ] }

Luego, en su archivo de reserva, asegúrese de declarar sus módulos require() :

var gulp = require("gulp");


Hasta que se implementen los módulos, puede usar el "transpilador" de Babel para ejecutar su código:

npm install --save babel-cli babel-preset-node6

y entonces

./node_modules/babel-cli/bin/babel-node.js --presets node6 ./your_script.js

Si no desea escribir --presets node6 , puede guardarlo .babelrc file de la siguiente manera:

{ "presets": [ "node6" ] }

Ver https://www.npmjs.com/package/babel-preset-node6 y https://babeljs.io/docs/usage/cli/


He hecho lo siguiente para superar el problema (ej. Script de js)

problema

$ cat ex.js import { Stack } from ''es-collections''; console.log("Successfully Imported"); $ node ex.js /Users/nsaboo/ex.js:1 (function (exports, require, module, __filename, __dirname) { import { Stack } from ''es-collections''; ^^^^^^ SyntaxError: Unexpected token import at createScript (vm.js:80:10) at Object.runInThisContext (vm.js:152:10) at Module._compile (module.js:624:28) at Object.Module._extensions..js (module.js:671:10) at Module.load (module.js:573:32) at tryModuleLoad (module.js:513:12) at Function.Module._load (module.js:505:3) at Function.Module.runMain (module.js:701:10) at startup (bootstrap_node.js:194:16) at bootstrap_node.js:618:3

solución

# npm package installation npm install --save-dev babel-preset-env babel-cli es-collections # .babelrc setup $ cat .babelrc { "presets": [ ["env", { "targets": { "node": "current" } }] ] } # execution with node $ npx babel ex.js --out-file ex-new.js $ node ex-new.js Successfully Imported # or execution with babel-node $ babel-node ex.js Successfully Imported


Involucre los siguientes pasos para resolver el problema:

1) Instale la CLI y el preajuste env

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

2) Crear un archivo .babelrc

{ "presets": ["env"] }

3) configurar npm start en package.json

"scripts": { "start": "babel-node ./server/app.js", "test": "echo /"Error: no test specified/" && exit 1" }

4) luego inicie la aplicación

$ npm start


Para aquellos que todavía tienen el mismo problema, seguir los pasos a continuación debería solucionarlo.

  1. Utilice babel 7 @babel/core @babel/present-env @babel/node y así sucesivamente ...
  2. Agregue .babelrc al directorio raíz de su proyecto que contiene el código a continuación.

{ "presets": [ [ "@babel/preset-env", { "targets": { "node": "current" } } ] ] }

  1. Asegúrese de utilizar la versión local del nodo ./node_modules/.bin/babel-node main.js

Ahora debería poder usar declaraciones de import/export , feliz pirateo.


Puede ser que esté ejecutando archivos sin compilar. ¡Comencemos limpio!

En su directorio de trabajo cree:

  • Dos carpetas Uno para el código es2015 precompilado. El otro para la producción de babel. Los llamaremos "src" y "lib" respectivamente.
  • Un archivo package.json con el siguiente objeto:

    { "scripts": { "transpile-es2015": "babel src -d lib" }, "devDependencies": { "babel-cli": "^6.18.0", "babel-preset-latest": "^6.16.0" } }

  • Un archivo llamado ".babelrc" con las siguientes instrucciones: {"presets": ["latest"]}

  • Por último, escriba el código de prueba en su archivo src / index.js. En su caso: import co from ''co''.

A través de tu consola:

  • Instala tus paquetes: npm install
  • Transpile su directorio de origen a su directorio de salida con el indicador -d (también conocido como -out-dir) como ya se especificó en nuestro paquete. npm run transpile-es2015 : npm run transpile-es2015
  • ¡Ejecute su código desde el directorio de salida! node lib/index.js


babel-preset-es2015 ahora está en desuso y recibirá una advertencia si intenta utilizar la solución de Laurence.

Para que esto funcione con Babel 6.24.1+, use babel-preset-env lugar:

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

Luego agregue env a sus presets en su .babelrc :

{ "presets": ["env"] }

Vea los documentos de Babel para más información.


Debe usar babel-preset-env y nodemon para la recarga en caliente.

Luego cree el archivo .babelrc con el siguiente contenido:

{ "presets": ["env"] }

Finalmente, cree un script en package.json:

"scripts": { "babel-node": "babel-node --presets=env", "start": "nodemon --exec npm run babel-node -- ./index.js", "build": "babel src -d dist" }

O simplemente use este repetitivo:

Repetitivo: node-es6


  • instalar -> "npm i --save-dev babel-cli babel-preset-es2015 babel-preset-stage-0"

siguiente en el archivo package.json, agregue los scripts "start": "babel-node server.js"

{ "name": "node", "version": "1.0.0", "description": "", "main": "server.js", "dependencies": { "body-parser": "^1.18.2", "express": "^4.16.2", "lodash": "^4.17.4", "mongoose": "^5.0.1" }, "devDependencies": { "babel-cli": "^6.26.0", "babel-preset-es2015": "^6.24.1", "babel-preset-stage-0": "^6.24.1" }, "scripts": { "test": "echo /"Error: no test specified/" && exit 1", "start": "babel-node server.js" }, "keywords": [], "author": "", "license": "ISC" }

y cree un archivo para babel, en la raíz ".babelrc"

{ "presets":[ "es2015", "stage-0" ] }

y ejecuta npm start en la terminal