我有一个使用Webpack构建的小型ReactJS应用程序。在主机Windows10计算机上运行时,此方法可以正常运行,但出于开发目的,我需要通过Windows Server 2012 VM(如果相关,使用Vagrant生成)运行它。
我遇到的问题是,在构建过程的某个阶段,与在Windows10上运行时相比,在VirtualBox中对项目根目录路径的解析方式有所不同。
这是错误:
C:\shared\Projects\frontend_webapp>set NODE_PATH=./src && node scripts/start.js
Failed to compile.
Invalid configuration object. Webpack has been initialised using a configuration
object that does not match the API schema.
- configuration.module.rules[0].include: The provided value "\\\\vboxsvr\\share
d\\Projects\\frontend_webapp\\src" is not an absolute path!
- configuration.module.rules[1].oneOf[1].include: The provided value "\\\\vboxs
vr\\shared\\Projects\\frontend_webapp\\src" is not an absolute path!
- configuration.output.path: The provided value "\\\\vboxsvr\\shared\\Projects\
\frontend_webapp\\build" is not an absolute path!
而不是
\\\\vboxsvr\\share
d\\Projects\\frontend_webapp\\src
,预期路径为C:\shared\Projects\frontend_webapp\src
我发现(使用'fs'库),用于对Webpack的appDirectory进行格式化的fs.realpathSync(process.cwd())
在Windows10上解析为正确的路径(C:\path\to\file\...
),但是解析为{{1 }}。请注意,\\vboxsvr\path\to\file\...
可以在VirtualBox中解析为正确的process.cwd()
,但是更改它的每次使用都可能会破坏它在Windows10中的运行并且不可持续。
作为参考,我的webpack.dev.config如下:
C:\path\to\file\...
我不确定如何解决此问题。