[英]Why is gulp not pulling css from node_modules?
我試圖將一個gulp 3x文件移動到4x並且卡住了為什么當從我的.scss
文件執行@import
時,gulp沒有獲取文件的內容。 相反,它輸出@import....
這是我的css
方法:
function css() {
return gulp
.src('./src/scss/**/*.scss')
.pipe(sourcemaps ? sourcemaps.init({loadMaps: true}) : noop())
.pipe(plumber())
.pipe(sass({
includePaths: ['./src/scss/', 'node_modules'],
outputStyle: 'expanded'
}))
.pipe(gulp.dest('./public/css/'))
.pipe(rename({suffix: '.min'}))
.pipe(postcss([autoprefixer(), cssnano({
discardComments: {
removeAll: true
},
discardDuplicates: true,
discardEmpty: true,
minifyFontValues: true,
minifySelectors: true
})]))
.pipe(sourcemaps ? sourcemaps.write('./') : noop())
.pipe(size({gzip: true, showFiles: true}))
.pipe(gulp.dest('./public/css/'))
.pipe(browsersync.stream());
}
這是我的.scss
文件:
@import url('https://fonts.googleapis.com/css?family=Nunito:300,400|Roboto:400,500');
@import "~pickadate/lib/compressed/themes/default.css";
@import "~pickadate/lib/compressed/themes/default.date.css";
@import "variables";
@import "calendar";
body {
font-family: 'Nunito', sans-serif;
}
...
以下是gulp輸出的內容:
@import url("https://fonts.googleapis.com/css?family=Nunito:300,400|Roboto:400,500");
@import url(~pickadate/lib/compressed/themes/default.css);
@import url(~pickadate/lib/compressed/themes/default.date.css);
.calendar {
color: red;
}
body {
font-family: 'Nunito', sans-serif;
}
在我的gulp 3x文件中,它會將所有.scss
(和任何導入的文件)編譯成單個.css
文件。 相反,我得到導入的字符串。
我很困惑我做錯了什么。 謝謝你的任何建議!
以下是我想到的任何遇到此事的人。 我最終手動將我需要的css文件復制到build
目錄中。
從那里我更新了我的gulpfile.js
文件,如下所示:
/**
* Compile scss into css.
*
* @returns {*}
*/
function scss() {
return gulp
.src('./src/scss/**/*.scss')
.pipe(sourcemaps ? sourcemaps.init({loadMaps: true}) : noop())
.pipe(plumber())
.pipe(sass({
includePaths: ['./src/scss/', 'node_modules'],
outputStyle: 'expanded'
}))
.pipe(gulp.dest('./public/css/'))
.pipe(rename({suffix: '.min'}))
.pipe(sourcemaps ? sourcemaps.write('./') : noop())
.pipe(size({gzip: true, showFiles: true}))
.pipe(gulp.dest('./build/css/'))
// .pipe(gulp.dest('./public/css/'))
.pipe(browsersync.stream());
}
/**
* Combine & minify all css files.
*
* @returns {*}
*/
function css() {
return gulp.src([
"./node_modules/normalize.css/normalize.css",
"./build/css/*.css",
"./src/css/**/*.css"
])
.pipe(plumber())
.pipe(sourcemaps ? sourcemaps.init({loadMaps: true}) : noop())
.pipe(concat('widget.bundle.min.css'))
.pipe(postcss([autoprefixer(), cssnano({
discardComments: {
removeAll: true
},
discardDuplicates: true,
discardEmpty: true,
minifyFontValues: true,
minifySelectors: true
})]))
.pipe(sourcemaps ? sourcemaps.write('./') : noop())
.pipe(size({gzip: true, showFiles: true}))
.pipe(gulp.dest('./public/css/'));
}
...
const watch = gulp.parallel(watcher);
const styles = gulp.series(scss, css);
exports.watch = watch;
exports.styles = styles;
希望這可以幫助。 我還想弄清楚如何避免手動覆蓋.css
文件,但這是一個好的開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.