Laravel Mix 突然停止编译 SCSS 并写入空文件
Laravel Mix suddenly stopped compiling SCSS and writes empty files
就在几天前,无论是 js 到 js 还是 scss 到 css,我的 mix 中的所有内容都编译正确。与此同时,我没有更改 scss 文件中的任何内容,也没有更改任何有关混音或整体设置的内容。但是,我在 Laravel 项目的 resources/js 文件夹中移动了一些项目的 jsb 文件,并相应地调整了所有相应的包含。
现在,几天后,当我 运行 npm run dev
,或 prod
或 watch
时,节点 returns 以下(文件改编的名字):
DONE Compiled successfully in 224711ms
Asset Size Chunks Chunk Names
/css/victor.css 0 bytes /js/bob, /js/ceasar [emitted] /js/bob, /js/ceasar
/css/wiliam.css 0 bytes /js/bob, /js/ceasar [emitted] /js/bob, /js/ceasar
/css/xanthos.css 0 bytes /js/bob, /js/ceasar [emitted] /js/bob, /js/ceasar
/css/yale.css 0 bytes /js/bob, /js/ceasar [emitted] /js/bob, /js/ceasar
/css/zac.css 0 bytes /js/bob, /js/ceasar [emitted] /js/bob, /js/ceasar
/js/alice.js 1.81 MiB /js/alice [emitted] /js/alice
/js/bob.js 47.2 KiB /js/bob [emitted] /js/bob
/js/ceasar.js 2.72 MiB /js/ceasar [emitted] /js/ceasar
0.js 28.5 KiB 0 [emitted]
1.js 114 KiB 1 [emitted]
事实上,这些文件实际上是空的。
我检查了 webpack.mix.js 以及主要的 scss 文件和它们包含的文件。 ——并没有发现什么特别可疑的东西。
我也试过重新安装所有 node_modules.
webpack.mix.js 看起来像这样:
let mix = require('laravel-mix');
mix.js('resources/js/bob.js', 'public/js')
.js('resources/js/ceasar.js', 'public/js')
.js('resources/js/alice.js', 'public/js')
.sass('resources/sass/kyle/wiliam.scss', 'public/css')
.sass('resources/sass/kyle/xanthos.scss', 'public/css')
.sass('resources/sass/victor.scss', 'public/css')
.sass('resources/sass/yale.scss', 'public/css')
.sass('resources/sass/zac.scss', 'public/css');
if (mix.inProduction()) {
mix.version();
}
(仅此而已,以防万一有人问。)
我想让我的工作 scss 编译器备份并 运行ning。
这个问题从何而来?我是不是搞砸了什么?
当您在应用程序代码中异步加载 files/components 时,似乎存在一些常见的已知问题。
This clearly shows upstream issues further down in the open issue
现在您可以尝试删除动态导入,如果您将空的 .css 文件导入到 javascript 文件中,一些开发人员也可以使用它。
我在 Laravel Mix 的 Github 页面上的 issue 中找到了一些有用的指导。
想法是为 css 和 js 文件创建两个单独的节点任务。我已经在 Laravel 的全新安装上尝试过它(使用 Laravel Mix v4.0.7)并且它正在运行。
就在几天前,无论是 js 到 js 还是 scss 到 css,我的 mix 中的所有内容都编译正确。与此同时,我没有更改 scss 文件中的任何内容,也没有更改任何有关混音或整体设置的内容。但是,我在 Laravel 项目的 resources/js 文件夹中移动了一些项目的 jsb 文件,并相应地调整了所有相应的包含。
现在,几天后,当我 运行 npm run dev
,或 prod
或 watch
时,节点 returns 以下(文件改编的名字):
DONE Compiled successfully in 224711ms
Asset Size Chunks Chunk Names
/css/victor.css 0 bytes /js/bob, /js/ceasar [emitted] /js/bob, /js/ceasar
/css/wiliam.css 0 bytes /js/bob, /js/ceasar [emitted] /js/bob, /js/ceasar
/css/xanthos.css 0 bytes /js/bob, /js/ceasar [emitted] /js/bob, /js/ceasar
/css/yale.css 0 bytes /js/bob, /js/ceasar [emitted] /js/bob, /js/ceasar
/css/zac.css 0 bytes /js/bob, /js/ceasar [emitted] /js/bob, /js/ceasar
/js/alice.js 1.81 MiB /js/alice [emitted] /js/alice
/js/bob.js 47.2 KiB /js/bob [emitted] /js/bob
/js/ceasar.js 2.72 MiB /js/ceasar [emitted] /js/ceasar
0.js 28.5 KiB 0 [emitted]
1.js 114 KiB 1 [emitted]
事实上,这些文件实际上是空的。
我检查了 webpack.mix.js 以及主要的 scss 文件和它们包含的文件。 ——并没有发现什么特别可疑的东西。 我也试过重新安装所有 node_modules.
webpack.mix.js 看起来像这样:
let mix = require('laravel-mix');
mix.js('resources/js/bob.js', 'public/js')
.js('resources/js/ceasar.js', 'public/js')
.js('resources/js/alice.js', 'public/js')
.sass('resources/sass/kyle/wiliam.scss', 'public/css')
.sass('resources/sass/kyle/xanthos.scss', 'public/css')
.sass('resources/sass/victor.scss', 'public/css')
.sass('resources/sass/yale.scss', 'public/css')
.sass('resources/sass/zac.scss', 'public/css');
if (mix.inProduction()) {
mix.version();
}
(仅此而已,以防万一有人问。)
我想让我的工作 scss 编译器备份并 运行ning。 这个问题从何而来?我是不是搞砸了什么?
当您在应用程序代码中异步加载 files/components 时,似乎存在一些常见的已知问题。
This clearly shows upstream issues further down in the open issue
现在您可以尝试删除动态导入,如果您将空的 .css 文件导入到 javascript 文件中,一些开发人员也可以使用它。
我在 Laravel Mix 的 Github 页面上的 issue 中找到了一些有用的指导。
想法是为 css 和 js 文件创建两个单独的节点任务。我已经在 Laravel 的全新安装上尝试过它(使用 Laravel Mix v4.0.7)并且它正在运行。