3

I´m using lerna with some packages:

packages
   - server
   - authenticator
   - graphql

server is my current project and authenticator and graphql are imported modules.

Here is my server package.json:

{
  "name": "@monorepo/server",
  "version": "3.0.0",
  "private": true,
  "scripts": {
    "start": "nodemon --exec \"cd ./src && babel-node server.js",
    "lint": "eslint ."
  },
  "dependencies": {
    "@monorepo/authenticator": "3.0.0",
    "@monorepo/graphql": "3.0.0",
    "babel-cli": "^6.26.0",
    "babel-preset-env": "^1.6.1",
    "babel-preset-react": "^6.24.1",
    "babel-preset-stage-3": "^6.24.1",
    "bcryptjs": "^2.4.3",
    "body-parser": "^1.17.2",
    "connect-mongo": "^2.0.0",
    "crypto": "^1.0.1",
    "express": "^4.15.3",
    "jwt-simple": "^0.5.1",
    "mongoose": "^5.0.10",
    "morgan": "^1.8.2",
    "nodemailer": "^4.6.0",
    "passport": "^0.4.0",
    "passport-jwt": "^4.0.0",
    "path": "^0.12.7",
    "validator": "^9.1.1"
  }
}

My src/server.js file:

import express from "express";

import appGraphQL from "@monorepo/graphql/src";
import * as authenticator from "@monorepo/authenticator";

const app = express();

app.listen(3000, () => {
  console.log(`Find the server at: http://localhost:3000`); 
});

My graphql/src/index.js:

 import graphqlHTTP from "express-graphql";

    ... some stuff here...

My authenticator/src/index.js:

 import passport from "passport";
    import passportJWT from "passport-jwt";
    import jwt from "jwt-simple";
    import bcrypt from "bcryptjs";
    import crypto from "crypto";
    import mongoose from "mongoose";

    ... some stuff here...

When running

$ yarn start
import passport from "passport";
^^^^^^
SyntaxError: Unexpected token import
    at Object.exports.runInThisContext (vm.js:76:16)
    at Module._compile (module.js:542:28)
    at loader (D:\monorepo\node_modules\babel-register\lib\node.js:144:5)
    at Object.require.extensions.(anonymous function) [as .js] (D:\monorepo\node_modules\babel-register\lib\node.js:154:7)
    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 Object.<anonymous> (D:/monorepo/packages/pageserver/src/server.js:24:1)
    at Module._compile (module.js:570:32)
    at loader (D:\monorepo\node_modules\babel-register\lib\node.js:144:5)
    at Object.require.extensions.(anonymous function) [as .js] (D:\monorepo\node_modules\babel-register\lib\node.js:154:7)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)

Can´t understand why is babel-node transpiling the graphql package and is not transpiling the authenticator package.

Is this a bug in babel-node ? What am I missing here ?

PS: Laravel internally use symlinks to modules. I´m using Windows 10.

Karl Hill
  • 12,937
  • 5
  • 58
  • 95
Mendes
  • 17,489
  • 35
  • 150
  • 263
  • Try to pass the presets in the command? ``--presets env,stage-3 --source-maps`` ? That's the command I'm using : ``"nodemon packages/server/app.js --ignore './packages/client' --exec babel-node --presets env,stage-0 --source-maps"`` – HRK44 Mar 28 '18 at 14:08
  • i am having same issue – hannad rehman Sep 06 '18 at 14:03

0 Answers0