找不到相对于目录的预设 "es2015"
Couldn't find preset "es2015" relative to directory
我从使用 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: 所有软件包和依赖项都使用 npm --no-bin-links
标志安装,因为 Windows 共享文件夹...
你必须安装babel-core。这是必需的依赖项
npm i babel-core -D
运行 npm uninstall babel -g
babel 包已被弃用,不再需要。
exlude: /(node_modules|bower_components)/,
应该是
exclude: /(node_modules|bower_components)/,
"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']
}))
对我有用
我从使用 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: 所有软件包和依赖项都使用 npm --no-bin-links
标志安装,因为 Windows 共享文件夹...
你必须安装babel-core。这是必需的依赖项
npm i babel-core -D
运行 npm uninstall babel -g
babel 包已被弃用,不再需要。
exlude: /(node_modules|bower_components)/,
应该是
exclude: /(node_modules|bower_components)/,
"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']
}))
对我有用