【发布时间】:2016-12-10 07:12:03
【问题描述】:
我正在尝试使用 react 的 webpack。我正在尝试使用 babel-loader 来转换 jsx 文件。我在使用任何 webpack 加载器/插件时收到模块未找到错误。我在 node_modules 中安装了所需的插件。
问题似乎与路径解析有关。在解析依赖插件时,它以某种方式将我的当前目录添加到绝对路径。
这是我的webpack.config.jssn-p
module: {
loaders: [{
test: /\.jsx?$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel', // 'babel-loader' is also a legal name to reference
query: {
presets: ['react', 'es2015', 'stage-0'],
plugins: ['react-html-attrs', 'transform-class-properties', 'transform-decorators-legacy']
}
}]
}
当我运行webpack(全局以及通过npm)时出现以下错误
ERROR in ../~/react/lib/ReactDOMNullInputValuePropDevtool.js
Module not found: Error: Cannot resolve module '\\users\home\smeghani\private\codebase\react-demo\node_modules\process\browser.js' in H:\codebase\react-demo\node_modules\react\lib
resolve module \\users\home\smeghani\private\codebase\react-demo\node_modules\process\browser.js in H:\codebase\react-demo\node_modules\react\lib
looking for modules in H:\codebase\react-demo\node_modules
resolve 'file' or 'directory' \users\home\smeghani\private\codebase\react-demo\node_modules\process\browser.js in H:\codebase\react-demo\node_modules
resolve file
H:\codebase\react-demo\node_modules\users\home\smeghani\private\codebase\react-demo\node_modules\process\browser.js doesn't exist
H:\codebase\react-demo\node_modules\users\home\smeghani\private\codebase\react-demo\node_modules\process\browser.js.webpack.js doesn't exist
H:\codebase\react-demo\node_modules\users\home\smeghani\private\codebase\react-demo\node_modules\process\browser.js.web.js doesn't exist
H:\codebase\react-demo\node_modules\users\home\smeghani\private\codebase\react-demo\node_modules\process\browser.js.js doesn't exist
H:\codebase\react-demo\node_modules\users\home\smeghani\private\codebase\react-demo\node_modules\process\browser.js.json doesn't exist
resolve directory
H:\codebase\react-demo\node_modules\users\home\smeghani\private\codebase\react-demo\node_modules\process\browser.js\package.json doesn't exist (directory description file)
H:\codebase\react-demo\node_modules\users\home\smeghani\private\codebase\react-demo\node_modules\process\browser.js doesn't exist (directory default file)
[H:\codebase\react-demo\node_modules\users\home\smeghani\private\codebase\react-demo\node_modules\process\browser.js]
[H:\codebase\react-demo\node_modules\users\home\smeghani\private\codebase\react-demo\node_modules\process\browser.js.webpack.js]
[H:\codebase\react-demo\node_modules\users\home\smeghani\private\codebase\react-demo\node_modules\process\browser.js.web.js]
[H:\codebase\react-demo\node_modules\users\home\smeghani\private\codebase\react-demo\node_modules\process\browser.js.js]
[H:\codebase\react-demo\node_modules\users\home\smeghani\private\codebase\react-demo\node_modules\process\browser.js.json]
@ ../~/react/lib/ReactDOMNullInputValuePropDevtool.js 1:0-102
这里H:\codebase\react-demo\是我的项目根目录。即node_modules 位于H:\codebase\react-demo\。它正在尝试在 H:\codebase\react-demo\node_modules\users\home\smeghani\private\codebase\react-demo\node_modules 中查找依赖项
知道我错过了什么吗?
【问题讨论】:
-
在 ReactDOMNullInputValuePropDevtool.js 你有
import '\\users\home\smeghani\private\codebase\react-demo\node_modules\process\browser.js'吗? -
没有。 ReactDOMNullInputValuePropDevtool.js 不是我的自定义文件。它被包含为节点依赖项(react-dom)之一。所以它没有硬编码路径的导入。
-
对不起,我会删除我的答案。我确实查看了 github 中的 react 代码,显然该文件只是重命名为
ReactDOMNullInputValuePropHook.js,而且它似乎不是导入过程,所以你可以尝试更新。 -
其实这只是错误的一个例子。对于我使用的任何插件,我都会遇到相同的错误。所以看起来,我在 webpack.config.js 中缺少一些关于如何解决插件依赖关系的配置。我尝试使用 resolve 和 resolveLoaders 没有任何运气。
-
你能发布你的 webpack 配置是关于 resolve 和 resolveLoaders 现在是什么,还是你在遇到这些错误时设置了这些属性?
标签: node.js reactjs plugins webpack loader