【发布时间】:2017-01-01 00:21:30
【问题描述】:
这是我的 pacjage.json:
{
"name": "redux-todo",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"start": "webpack-dev-server"
},
"devDependencies": {
"babel": "^6.5.2",
"babel-loader": "^6.2.5",
"babel-preset-es2015": "^6.13.2",
"babel-preset-react": "^6.11.1",
"webpack": "^1.13.2"
},
"dependencies": {
"react": "^15.3.1",
"react-dom": "^15.3.1",
"react-redux": "^4.4.5",
"redux": "^3.5.2"
}
}
webpack.config.js:
var path = require('path');
module.exports = {
entry: './index.js',
output: {
path: './',
filename: 'app.js'
},
devServer: {
inline: true,
port: 3334
},
resolveLoader: { root: path.join(__dirname, "node_modules") },
module: {
loaders: [
{
test: /\.js$/,
exclude: '/node_modules',
loader: 'babel',
query: {
presets: ['es2015', 'react']
}
}
]
}
};
我有以下项目目录结构:
├── actions.js
├── components
├── containers
├── index.js
├── node_modules
├── package.json
├── reducers.js
├── test.js
└── webpack.config.js
项目目录的绝对路径是/home/dmitriy/WebstormProjects/Redux-todo
那么为什么当我运行 npm start 时它会因错误而崩溃:
(webpack)/~/process/browser.js 中的错误 模块构建失败:错误:找不到相对于目录“/usr/local/lib/node_modules/webpack/node_modules/process”的预设“es2015”
这个/usr/local/lib/node_modules/webpack/node_modules/process 路径是什么,为什么它说它是相对于它进行搜索的?
搜索这个错误我发现
重要提示:这里的加载器是相对于它们所应用的资源进行解析的。这意味着它们不会相对于配置文件进行解析。如果你从 npm 安装了加载器,并且你的 node_modules 文件夹不在所有源文件的父文件夹中,那么 webpack 找不到加载器。您需要将 node_modules 文件夹作为绝对路径添加到 resolveLoader.root 选项。 (resolveLoader: { root: path.join(__dirname, "node_modules") })
应该修复它,但正如您所见,我的配置中有它并且仍然看到此错误。
我在 ubuntu 16.04 LTS,nodejs 版本是 4.2.6,npm 3.5.2
【问题讨论】:
-
在你的父目录中有.babelrc 文件吗?
-
不,没有.babelrc
标签: javascript node.js unix npm webpack