为什么webpack HMR需要模块路径中的当前目录?

时间:2017-10-11 17:47:16

标签: javascript webpack webpack-dev-server

我的webpack配置编译得很好,但当我尝试使用热模块替换编辑我的CSS(手写笔)文件时,它会因此错误而崩溃:

  错误在./node_modules/css-loader!./node_modules/stylus-loader!./src/pages/login/login.styl   模块构建失败:错误:ENOENT:没有这样的文件或目录,打开' /vagrant/client/src/pages/login/login.styl'       在错误(本机)

我注意到错误消息中的路径./src/pages/login/login.styl,并尝试将当前工作目录添加到webpack配置中的模块路径:

resolve: {
    modules: [
        path.resolve('./'),   // <- THIS
        path.resolve('./src'),
        path.resolve('./node_modules')
    ],
    extensions: ['.js', '.coffee']
},

现在它工作正常。我并不是真的想把整个项目文件夹添加为一个模块,但我觉得HMR并不是很奇怪。

这是HMR的预期行为吗?

我怀疑style-loader可能实际上是罪魁祸首,因为我在错误消息中的装载程序链中看不到它。这是.styl文件的加载程序配置:

{
    test: new RegExp('\.styl$'),
    loader: ['style-loader', 'css-loader', 'stylus-loader']
},

也许这是一个错误?

0 个答案:

没有答案