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?
-
Instalar paquetes:
babel-core
,babel-polyfill
,babel-preset-es2015
-
Cree
.babelrc
con contenido:{ "presets": ["es2015"] }
-
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 requerirbabel-core/register
ybabel-polyfill
para que Babel funcione por separado antes que nada. Entonces puede requerirapp.js
donde la declaración deimport
.
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.
-
Utilice babel 7
@babel/core @babel/present-env @babel/node
y así sucesivamente ... -
Agregue
.babelrc
al directorio raíz de su proyecto que contiene el código a continuación.
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "current"
}
}
]
]
}
-
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
si usa el preajuste para react-native, acepta la importación
npm i babel-preset-react-native --save-dev
y póngalo dentro de su archivo .babelrc
{
"presets": ["react-native"]
}
en el directorio raíz de tu proyecto
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:
- 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