Laravel:NPM运行热保持运行旧项目而不是电流



太奇怪了,我在xampp htdocs laravel vue上有以前的项目,我一直在该项目上使用HMR。现在,我创建了新的项目Laravel React,我正在尝试猜测为什么HMR不起作用,我尝试了Github上的每一件作品,以使工作如此不幸,我也尝试重新创建Node_modules和package.json和Clear npm也无法正常工作。

然后,当我在当前项目kintool> npm run hot上运行NPM运行的NPM运行时,我发现了这个问题,控制台上没有[WDS] Hot Module Replacement enabled.。但是当我打开旧项目时。我的目标位置是在当前项目上,但它运行在我的旧项目上,而不是当前的项目,这就是为什么我当前的项目无法使用我尝试的原因。

我尝试在HTDOC上删除我的旧项目,每当我运行npm运行hot hot

时,它的目标仍然一样。

当前应用程序上的我的webpack.mix.js

let mix = require('laravel-mix');
mix.react('resources/assets/js/bundle.js', 'public/js')
   .sass('resources/assets/sass/app.scss', 'public/css');
mix.disableSuccessNotifications();

旧项目webpack.mix.js

let mix = require('laravel-mix');

mix.js('resources/assets/js/app.js', 'public/js')
     .stylus('resources/assets/stylus/app.styl', 'public/css/vuetify.css')
   .sass('resources/assets/sass/app.scss', 'public/css')
   .sass('resources/assets/sass/global.sass', 'public/css/global.css')
   .sass('resources/assets/sass/media-hover-effect.sass', 'public/css/media-hover-effect.css')
   .copyDirectory('node_modules/font-awesome','public/copiedDir/font-awesome')
   .js('resources/assets/js/jscripts/myscripts.js', 'public/js');
mix.disableSuccessNotifications();

我找到了什么原因。我正在使用Laravel-Mix 2.1

有两种解决此问题的方法

1。(降级至1.7或1.6

2。(或遵循我所做的那一步。您需要配置WebPack-dev-server。

我发现了一个潜在的解决方案,看起来就像删除了领先 生成的WebPack配置中的入口点上的斜线修复了与 Hmr。

我会以此提交PR,但是当我进行这些更改时 测试开始失败,目前我没有足够的时间 研究为什么😄

的原因

您可以将这些更改应用于node_modules/laravel-mix 目录:

在src/builder/entry.js中:在第90行:更改:

让名称= output.pathfrompublic(config.publicpath(.replace(/。js $/,, ''(.replace(//g,'/'(;到:

让名称= output.pathfrompublic(config.publicpath(.replace(/。js $/,, ''(.replace(//g,'/').replace(/^//,''(;这解决了JS。

的问题

在第137行中的src/builder/webpack-rules.js中:更改:

让输出路径= preprocessor.output.filepath.replace(config.publicpath path.sep, path.sep(.replace(//g,'/'(;到:

让输出路径= preprocessor.output.filepath.replace(config.publicpath path.sep, path.sep(.replace(//g,'/'(。替换(/^//,''(;

最新更新