Javascript 为什么当我';我在使用自定义入口点吗?

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模块中找不到错误:错误

我在Webpack中设置了自定义入口点,但在我的React代码的这一行中出现错误:

从“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'
},