不兼容的单位:'rem'和'px' - Bootstrap 4和Laravel Mix

Nic*_*sîr 24 laravel bootstrap-sass webpack bootstrap-4

我刚刚安装了一个新的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
Run Code Online (Sandbox Code Playgroud)

有人通过了吗?如何?

Nic*_*sîr 37

解决了

  1. 从package.json中删除bootstrap条目,并将其替换为"bootstrap":"4.0.0-alpha.6",在resources/assets/sass/app.scss中,
  2. 注释掉变量的导入.将bootstrap的路径更改为@import"node_modules/bootstrap/scss/bootstrap.scss";
  3. 在resources/assets/js/bootstrap.js中,查找require('bootsrap-sass'); 并将其更改为require('bootstrap');

链接!

  • 是的,看起来Laravel提供的`resources/assets/sass/_variables`和Bootstrap v4 a6附带的变量之间存在冲突.评论Laravel的变量解决了这个问题. (7认同)

小智 17

它也发生在我身上,就像你说的那样,一些变量的覆盖是造成这个错误的原因.

要解决这个问题,只需在resources/assets/sass/_variables中注释这一行:

$ font-size-base:14px;

在变量中,如果需要使用laravel提供的其他变量.

参考:https://github.com/twbs/bootstrap/issues/18368

  • 你也可以简单地将`14px`改为`1rem` - 为我修复它. (7认同)
  • 我今天已经下载了bootstrap 4,我仍然得到这个问题$ input-height-inner:($ font-size-base*$ input-btn-line-height)+($ input-btn-padding-y*2 )!默认; ^不兼容的单位:'rem'和'px*px'.$ font-size-base是1rem (2认同)

Arm*_*min 8

我只是在我这边解决了这个问题,对我有用的是将@import“bootstrap.scss..”和其他变量移动到 app.scss 文件的顶部,它似乎被覆盖了,这就是导致问题的原因。


Bla*_*tus 5

只需更改“ $ font-size-base:14px;” 改为'$ font-size-base:0.875rem;' 然后运行“ npm run dev”。并做了。