首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未在monorepo项目上加载Babel预设

未在monorepo项目上加载Babel预设
EN

Stack Overflow用户
提问于 2018-03-20 06:09:17
回答 1查看 2.4K关注 0票数 3

我有一个使用Lerna的monorepo,结构如下:

代码语言:javascript
复制
monorepo
  |--  server
  |--  package1
  |--  package2

所有包都使用Babel,在安装3个项目后,yarn将所有@babel库复制到monorepo/node_modules。因此,项目上没有安装babel,只是安装在monorepo存储库中。

我的lerna.json:

代码语言:javascript
复制
{
  "lerna": "2.9.0",
  "npmClient": "yarn",
  "useWorkspaces": true,
  "packages": [
    "packages/*"
  ]
}

lerna根package.json

代码语言:javascript
复制
{
    "name": "monorepo",
    "version": "1.0.0",
    "workspaces": [
        "packages/*"
    ],
    "private": true,
    "scripts": {
        "start": "lerna exec -- start",
    },
    "devDependencies": {
        "lerna": "^2.9.0",
        "concurrently": "3.5.1",
        "eslint": "^4.18.2",
        "eslint-config-airbnb": "16.1.0",
        "eslint-plugin-import": "2.9.0",
        "eslint-plugin-jsx-a11y": "6.0.3",
        "eslint-plugin-react": "7.7.0",
        "fs-extra": "^5.0.0",
        "node-fetch": "^2.1.1",
        "nodemon": "^1.11.0"
      }
}

我的项目有以下package.json:

代码语言:javascript
复制
{
  "name": "@monorepo/server",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "start": "nodemon --exec \"babel-node start-server.js\""
  },
  "dependencies": {
    "@babel/cli": "^6.24.1",
    "@babel/core": "^6.25.0",
    "@babel/plugin-transform-runtime": "^6.23.0",
    "@babel/preset-env": "^1.6.1",
    "@babel/preset-es2017": "^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",
    "express-graphql": "^0.6.12",
    "graphql": "^0.13.1",
    "graphql-relay": "^0.5.4",
    "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"
  },
  "babel": {
    "presets": [
      "@babel/es2017",
      "@babel/preset-env"
    ],
    "plugins": [
      "transform-runtime"
    ]
  }
}

当我启动服务器时,它没有在本地找到加载器。我想这是因为所有的babel都安装在monorepo/node_modules中。

代码语言:javascript
复制
yarn server
yarn run v1.5.1
$ lerna exec --scope @amplifactory/server -- nodemon --exec "babel-node start-server.js
lerna info version 2.9.0
lerna info scope @amplifactory/server
[nodemon] 1.17.2
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `babel-node start-server.js`
D:\monorepo\node_modules\babel-core\lib\transformation\file\options\option-manager.js:328
        throw e;
        ^

Error: Couldn't find preset "@babel/es2017" relative to directory "D:\\9. DEV\\WORKSPACE\\amplifactory\\packages\\server"
    at D:\monorepo\node_modules\babel-core\lib\transformation\file\options\option-manager.js:293:19
    at Array.map (native)
    at OptionManager.resolvePresets (D:\monorepo\node_modules\babel-core\lib\transformation\file\options\option-manager.js:275:20)
    at OptionManager.mergePresets (D:\monorepo\node_modules\babel-core\lib\transformation\file\options\option-manager.js:264:10)
    at OptionManager.mergeOptions (D:\monorepo\node_modules\babel-core\lib\transformation\file\options\option-manager.js:249:14)
    at OptionManager.init (D:\monorepo\node_modules\babel-core\lib\transformation\file\options\option-manager.js:368:12)
    at compile (D:\monorepo\node_modules\babel-register\lib\node.js:103:45)
    at loader (D:\monorepo\node_modules\babel-register\lib\node.js:144:14)
    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)
[nodemon] app crashed - waiting for file changes before starting...

我该如何解决这个问题呢?如何配置服务器来查看monorepo babel并解决该错误?

EN

回答 1

Stack Overflow用户

发布于 2019-04-01 02:24:49

代码语言:javascript
复制
yarn add --dev -W @babel/cli @babel/core @babel/plugin-transform-runtime @babel/preset-env @babel/preset-es2017"

Yarn标志告诉-W工作区安装在根级别。然后,您还可以将Babel配置从包内部移动到根目录。我建议将配置从package.json中分离出来,放入它自己的babel.config.js文件中。

Here's a completed Monorepo example将Babel 7与勒纳和纱线工作区一起使用。希望这能有所帮助!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49373181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档