Recibo el error "SyntaxError: Importación de token inesperada" cuando realizo la 'prueba de trufa'. Estoy tratando de importar una función declarada en otro archivo al archivo de prueba de java-script. He estado buscando sobre este problema durante bastante tiempo y no pude encontrar ninguna solución. ¿Es este un problema con las pruebas de moca en trufa?
Todo lo que necesitaba era agregar un archivo package.json al directorio del proyecto con algunas dependencias de babel y hacer una 'instalación npm'. Además, agregar un archivo '.babelrc' al directorio del proyecto truffle. Finalmente, agregar algunos requisitos al archivo truffle.js.
archivo paquete.json
{
"name": "game-token",
"devDependencies": {
"babel-preset-es2015": "^6.18.0",
"babel-preset-stage-2": "^6.24.1",
"babel-preset-stage-3": "^6.17.0",
"babel-polyfill": "^6.26.0",
"babel-register": "^6.23.0"
}
}
archivo .babelrc
{
"presets": ["es2015", "stage-2", "stage-3"]
}
requiere en truffle.js
require('babel-register');
require('babel-polyfill');
Probé la solución de i_robot, y casi* funcionó, tuve que agregar:
require('babel-register')({
ignore: /node_modules\/(?!zeppelin-solidity)/
});
require('babel-polyfill');
en la parte superior de mi truffle.js. ¡El campo ignorar es importante! Además de agregar babel-polyfill en mis dependencias de package.json:
"dependencies": {
"babel-polyfill": "^6.26.0",
"babel-preset-es2015": "^6.18.0",
"babel-preset-stage-2": "^6.24.1",
"babel-preset-stage-3": "^6.17.0",
"babel-register": "^6.23.0",
"bignumber.js": "^5.0.0",
"bluebird": "^3.5.1",
"lodash": "^4.17.4",
"zeppelin-solidity": "1.6.0"
}
archivo .babelrc
{
"presets": ["es2015", "stage-2", "stage-3"]
}
Si no está usando es6 javascript, no puede usar la import
palabra clave. Si está utilizando es6, tal vez no tenga mocha configurado correctamente para comprender o transpilar a es5 antes de ejecutar sus pruebas.
Me resultó más fácil usar el require
método.
src/utils.js:
exports.a = 3;
prueba/foo/testfile.js:
// Note the relative path from the current test file.
const utils = require('../../src/utils.js');
console.log(utils.a); // 3
Kevin