Javascript 为什么当我';我在使用自定义入口点吗?
我在Webpack中设置了自定义入口点,但在我的React代码的这一行中出现错误:Javascript 为什么当我';我在使用自定义入口点吗?,javascript,reactjs,webpack,webpack-dev-server,Javascript,Reactjs,Webpack,Webpack Dev Server,我在Webpack中设置了自定义入口点,但在我的React代码的这一行中出现错误: 从“React”导入React Webpack能够构建它,但它的NT正在拦截该路径,因为Chrome给了我以下控制台错误: 未捕获类型错误:无法解析模块说明符“react”。 相对引用必须以“/”、“/”或“./”开头 但是,当我按照建议将路径更改为: import React from./React' 此时webpack无法生成,并出现以下错误: 在./path/to/my/file.js模块中找不到错误:错误
从“React”导入React代码>
Webpack能够构建它,但它的NT正在拦截该路径,因为Chrome给了我以下控制台错误:
未捕获类型错误:无法解析模块说明符“react”。
相对引用必须以“/”、“/”或“./”开头
但是,当我按照建议将路径更改为:
import React from./React'代码>
此时webpack无法生成,并出现以下错误:
在./path/to/my/file.js模块中找不到错误:错误:无法解析
“./react”位于“/Users/me/Documents/GitHub/myProject/path/to/my@
./path/to/my/file.js 3:0-28
此外,我得到了这个Chrome控制台错误:
得到http://localhost:9000/path/to/my/file/react net::ERR_中止404(未找到)
因此,webpack在path/to/my/
中查找react,而不是在node\u模块中查找react
我的webpack.config.js
如下所示:
//snip
module.exports = {
entry: './path/to/my/file.js',
output: {
path: path.join(__dirname, '/build'),
publicPath: '/',
filename: 'bundle.js'
},
devServer: {
contentBase: path.join(__dirname, '/'),
port: 9000
},
//snip
}
和package.json
{
//snip
"main": "path/to/my/file.js",
//snip
}
此问题是由HTML文件中的
标记导致的,该标记指向源脚本的实际位置,而不是指向webpack创建的编译输出文件
这是错误的:
^它指向存储库中实际位置的原始源代码。它不是由webpack处理的,也不是由babel编译的,它只是由浏览器处理的一个普通javascript文件,这解释了浏览器错误
这是正确的:
^它指向webpack根据配置生成的编译输出。在dev服务器中,没有一个名为bundle.js的实际文件,该文件位于内存中,该文件的路径就是dev服务器,例如http://localhost:8000
名称之所以是bundle.js
,是因为它恰好是在webpack.config.js
模块输出文件名中设置的。如果设置为其他内容,则会是这样
output: {
path: path.join(__dirname, '/build'),
publicPath: '/',
filename: 'bundle.js'
},