不兼容的单位:'rem' 和 'px' - Bootstrap 4 和 Laravel 混合
Incompatible units: 'rem' and 'px' - Bootstrap 4 and Laravel Mix
我刚刚安装了一个新的 Laravel 5.4 和 bootstrap 4 alpha 6。Laravel mix 无法编译 SASS:
这是一个错误:
Module build failed: ModuleBuildError: Module build failed:
$input-height: (($font-size-base * $input-line-height) + ($input-padding-y * 2)) !default;
^
Incompatible units: 'rem' and 'px'.
in /Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/bootstrap/scss/_variables.scss (line 444, column 34)
at runLoaders (/Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/webpack/lib/NormalModule.js:192:19)
at /Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/loader-runner/lib/LoaderRunner.js:364:11
at /Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/loader-runner/lib/LoaderRunner.js:230:18
at context.callback (/Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
at Object.asyncSassJobQueue.push [as callback] (/Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/sass-loader/lib/loader.js:57:13)
at Object.<anonymous> (/Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/sass-loader/node_modules/async/dist/async.js:2262:31)
at apply (/Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/sass-loader/node_modules/async/dist/async.js:20:25)
at Object.<anonymous> (/Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/sass-loader/node_modules/async/dist/async.js:56:12)
at Object.callback (/Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/sass-loader/node_modules/async/dist/async.js:944:16)
at options.error (/Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/node-sass/lib/index.js:294:32)
@ multi ./resources/assets/js/app.js ./resources/assets/sass/app.scss
有人通过了这个?以及如何?
已解决
- 从 package.json 中删除 bootstrap 条目并将其替换为
"bootstrap": "4.0.0-alpha.6", 在 resources/assets/sass/app.scss,
- 注释掉变量的导入。将 bootstrap 的路径更改为
@import "node_modules/bootstrap/scss/bootstrap.scss";
- 在resources/assets/js/bootstrap.js中,寻找require('bootsrap-sass');
并将其更改为 require('bootstrap');
我也遇到过,就像你说的,某些变量的覆盖是导致这个错误的原因。
要解决这个问题,只需在 resources/assets/sass/_variables 中注释这一行:
$font-size-base: 14px;
在变量中,如果您需要使用 laravel 提供的其他变量。
只需更改
$font-size-base: 14px;
到
$font-size-base: 0.875rem;
和运行
npm run dev
我只是在我这边解决了这个问题,对我有用的是将@import "bootstrap.scss.." 和其他变量移动到 app.scss 文件的顶部,它似乎被覆盖了,那就是是什么导致了这个问题。
我刚刚安装了一个新的 Laravel 5.4 和 bootstrap 4 alpha 6。Laravel mix 无法编译 SASS: 这是一个错误:
Module build failed: ModuleBuildError: Module build failed:
$input-height: (($font-size-base * $input-line-height) + ($input-padding-y * 2)) !default;
^
Incompatible units: 'rem' and 'px'.
in /Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/bootstrap/scss/_variables.scss (line 444, column 34)
at runLoaders (/Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/webpack/lib/NormalModule.js:192:19)
at /Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/loader-runner/lib/LoaderRunner.js:364:11
at /Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/loader-runner/lib/LoaderRunner.js:230:18
at context.callback (/Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
at Object.asyncSassJobQueue.push [as callback] (/Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/sass-loader/lib/loader.js:57:13)
at Object.<anonymous> (/Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/sass-loader/node_modules/async/dist/async.js:2262:31)
at apply (/Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/sass-loader/node_modules/async/dist/async.js:20:25)
at Object.<anonymous> (/Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/sass-loader/node_modules/async/dist/async.js:56:12)
at Object.callback (/Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/sass-loader/node_modules/async/dist/async.js:944:16)
at options.error (/Volumes/HDD/nicolae/Dev/htdocs/test/node_modules/node-sass/lib/index.js:294:32)
@ multi ./resources/assets/js/app.js ./resources/assets/sass/app.scss
有人通过了这个?以及如何?
已解决
- 从 package.json 中删除 bootstrap 条目并将其替换为 "bootstrap": "4.0.0-alpha.6", 在 resources/assets/sass/app.scss,
- 注释掉变量的导入。将 bootstrap 的路径更改为 @import "node_modules/bootstrap/scss/bootstrap.scss";
- 在resources/assets/js/bootstrap.js中,寻找require('bootsrap-sass'); 并将其更改为 require('bootstrap');
我也遇到过,就像你说的,某些变量的覆盖是导致这个错误的原因。
要解决这个问题,只需在 resources/assets/sass/_variables 中注释这一行:
$font-size-base: 14px;
在变量中,如果您需要使用 laravel 提供的其他变量。
只需更改
$font-size-base: 14px;
到
$font-size-base: 0.875rem;
和运行
npm run dev
我只是在我这边解决了这个问题,对我有用的是将@import "bootstrap.scss.." 和其他变量移动到 app.scss 文件的顶部,它似乎被覆盖了,那就是是什么导致了这个问题。