2

私はいくつかのパッケージでlernaを使用しています:

packages
   - server
   - authenticator
   - graphql

serverは私の現在のプロジェクトでauthenticatorありgraphql、インポートされたモジュールです。

これが私のもの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"
  }
}

私のsrc/server.jsファイル:

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`); 
});

私のgraphql/src/index.js:

 import graphqlHTTP from "express-graphql";

    ... some stuff here...

私の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...

実行時

$ 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)

なぜbabel-nodeがgraphqlパッケージをトランスパイルし、パッケージをトランスパイルしていないのか理解できませんauthenticator

これは babel-node のバグですか? ここで何が欠けていますか?

PS: Laravel はモジュールへのシンボリックリンクを内部的に使用します。Windows 10 を使用しています。

4

0 に答える 0