airyland / vux-loader

hack into vue-loader
64 stars 37 forks source link

在PHP的Laravel框架中使用Vux(vux-loader)遇到的路径问题。 #35

Closed harde closed 6 years ago

harde commented 6 years ago

因为PHP的Laravel框架自己带了一个“包装过”的 Webpack,叫Laravel-mix

在最新的vux2.6.5 vux-loader 1.1.13的环境下。 js-loader.js 的 50行

const pkgPath = vuxConfig.options.vuxDev ? path.join(this.options.context, 'package.json') : path.join(this.options.context, 'node_modules/vux/package.json')

this.options.context 的值为 /[path to project]/node_modules/laravel-mix/src/builder

所以会导致 Module build failed: Error: Cannot find module '/[path to project]/node_modules/laravel-mix/src/builder/node_modules/vux/package.json'

而且这段代码貌似并没有什么用途。。。。。

airyland commented 6 years ago

Laravel 不了解,context 是 webpack 执行的目录,该目录下应该有 node_modules 依赖才对。

harde commented 6 years ago

对,但是laravel-mix这个东西,可以理解为它就是webpack,所以,基于这个原因,在laravel-mix 的路径下,继续查找vux是不存在的。(因为vux 与 laravel-mix 是同级的目录) /node_modules/laravel-mix /node_modules/vux

airyland commented 6 years ago

context 是 webpack 指定的,如果这里 context 被 laravel-mix 修改过,这个逻辑貌似不算 vux-loader 的 bug。看了下也并没有找到 laravel-mix 的简单例子。

harde commented 6 years ago

嗯,明白,友情提示下。