簡體   English   中英

帶有precss插件的Gulp-postcss導入scss文件時引發錯誤

[英]Gulp-postcss with precss plugin throws an error when importing scss files

我試圖在我的app.scss文件中導入多個scss文件,但是gulp拋出錯誤:

//app.scss
@import "base";

body {
   background: #fff;
}

gulpfile.js

gulp.task('build-css', function () {
    return gulp.src(assetsDev + 'scss/*.scss')
        .pipe(sourcemaps.init())
        .pipe(postcss([precss, autoprefixer, cssnano]))
        .pipe(sourcemaps.write())
        .pipe(ext_replace('.css'))
        .pipe(gulp.dest(assetsProd + 'css/'));
});

目錄結構:

├── assets
│   └── scss
│       ├── _base.scss
│       └── app.scss
├── src
│   └── css
│       └── style.css
└── gulpfile.js

gulp拋出此錯誤:

events.js:141
  throw er; // Unhandled 'error' event
  ^
Error: ENOENT: no such file or directory, open '...\assets\scss\_base.css'
at Error (native)

precsspostcss-partial-import插件用於@import語句。 默認情況下,它假定導入的partials的擴展名是css

您需要在所有@import語句中提供完整的文件名(帶有擴展名):

@import "_base.scss";

body {
  background: #fff;
}

或者您需要將extension選項傳遞給precss()

gulp.task('build-css', function () {
  return gulp.src(assetsDev + 'scss/*.scss')
    .pipe(sourcemaps.init())
    .pipe(postcss([precss({extension:'scss'}), autoprefixer, cssnano]))
    .pipe(sourcemaps.write())
    .pipe(ext_replace('.css'))
    .pipe(gulp.dest(assetsProd + 'css/'));
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM