【问题标题】:Couldn't find preset "es2015" relative to directory找不到相对于目录的预设“es2015”
【发布时间】:2016-08-27 10:28:06
【问题描述】:

我从使用 egghead.io tutorial 的 React 和 Flux 架构开始,但在使用 babel 时遇到了一些麻烦。

我在尝试使用 webpack-dev-server 运行我的应用程序时遇到错误。以下是错误:

ERROR in The node API for `babel` has been moved to `babel-core`.
 @ (webpack)-dev-server/client?http://localhost:3002 1:10-24

ERROR in The node API for `babel` has been moved to `babel-core`.
 @ (webpack)-dev-server/client?http://localhost:3002 3:16-37

ERROR in The node API for `babel` has been moved to `babel-core`.
 @ (webpack)-dev-server/client?http://localhost:3002 2:13-37

ERROR in (webpack)/~/process/browser.js
Module build failed: Error: Couldn't find preset "es2015" relative to directory "/usr/local/lib/node_modules/webpack/node_modules/process"
    at /var/www/public/flux/node_modules/babel-core/lib/transformation/file/options/option-manager.js:372:17
    at Array.map (native)
    at OptionManager.resolvePresets (/var/www/public/flux/node_modules/babel-core/lib/transformation/file/options/option-manager.js:364:20)
    at OptionManager.mergePresets (/var/www/public/flux/node_modules/babel-core/lib/transformation/file/options/option-manager.js:348:10)
    at OptionManager.mergeOptions (/var/www/public/flux/node_modules/babel-core/lib/transformation/file/options/option-manager.js:307:14)
    at OptionManager.init (/var/www/public/flux/node_modules/babel-core/lib/transformation/file/options/option-manager.js:465:10)
    at File.initOptions (/var/www/public/flux/node_modules/babel-core/lib/transformation/file/index.js:194:75)
    at new File (/var/www/public/flux/node_modules/babel-core/lib/transformation/file/index.js:123:22)
    at Pipeline.transform (/var/www/public/flux/node_modules/babel-core/lib/transformation/pipeline.js:45:16)
    at transpile (/var/www/public/flux/node_modules/babel-loader/index.js:14:22)
 @ ./~/react/lib/ReactDOM.js 1:0-78

另外,这是我的 webpack 配置文件:

module.exports = {
    entry: "./src/js/main.js",
    output: {
        path: "./dist",
        filename: "bundle.js",
        publicPath: "/"
    },
    devServer: {
        inline: true,
        port: 3002,
        contentBase: "./dist"
    },
    module: {
        loaders: [
            {
                test: /\.jsx?$/,
                exlude: /(node_modules|bower_components)/,
                loader: "babel",
                query: {
                    presets: ["es2015", "react"]
                }
            }
        ]
    }
};

还有我的 package.json 文件以及所有依赖项:

 {
  "name": "flux-jenezis",
  "version": "1.0.0",
  "description": "Flux realisatoin usign egghead guide",
  "main": "index.js",
  "scripts": {
    "start": "webpack-dev-server"
  },
  "keywords": [
    "flux",
    "react"
  ],
  "author": "jenezis",
  "license": "ISC",
  "dependencies": {    
    "flux": "^2.1.1",
    "react": "^15.0.2",
    "react-dom": "^15.0.2",
    "react-router": "^2.4.0"
  },
  "devDependencies": {
    "babel-core": "^6.7.7",
    "babel-loader": "^6.2.4",
    "babel-preset-es2015": "^6.6.0",
    "babel-preset-react": "^6.5.0"
  }
}

有人看到或解决了这个问题吗?

PS: 节点版本:5.0.0,NPM 版本:3.7.5

UPD:由于 Windows 共享文件夹,所有使用 npm --no-bin-links 标志安装的包和依赖项...

【问题讨论】:

标签: webpack ecmascript-6 babeljs webpack-dev-server


【解决方案1】:
exlude: /(node_modules|bower_components)/,

应该是

exclude: /(node_modules|bower_components)/,

【讨论】:

  • 非常感谢!我不得不捆绑一个名为 tween.js 的库,而且我也一直遇到错误。我的问题是,我的 webpack.config.json 中没有 exclude 参数!有人能解释一下 exclude 的作用吗?
【解决方案2】:

“es2015”在:

    .pipe(babel({
        presets: ['es2015']
    }))

实际上是一个路径 - 所以如果你没有在 /usr/local/lib/node_modules/webpack/node_modules/process/es2015 目录中预设 es2015 ,你必须准确地指向它,例如:

.pipe(babel({
    presets: ['../../gulp/node_modules/babel-preset-es2015']
}))

对我有用

【讨论】:

  • 并确保 babel-preset-es2015 由 npm 安装。
【解决方案3】:

运行npm uninstall babel -g

babel 包已被弃用,不再需要。

【讨论】:

  • 你有那个链接吗?
【解决方案4】:

你必须安装 babel-core。这是必需的依赖项

npm i babel-core -D

【讨论】:

  • 我已经安装了babel-core。只是为了确定,再重新安装一次,仍然有同样的问题
  • 是全局安装的,还是需要在项目中安装?
  • 项目中需要。在你的 devDependencies 中。顺便说一句,您的依赖项中不需要 babel 预设,只需要在您的 devDependencies 中
  • 感谢您的建议。我已经更新了我的package.json 并重新安装了整个项目,但问题仍然存在。
猜你喜欢
  • 2016-11-23
  • 2017-03-04
  • 2016-03-24
  • 1970-01-01
  • 1970-01-01
  • 2018-07-22
  • 1970-01-01
  • 2018-01-26
相关资源
最近更新 更多