我想用SASS从我的node_modules导入一个CSS文件。
@import 'normalize.css/normalize';这是我的gulpfile.js如何处理我的SASS:
const
gulp = require('gulp'),
sass = require('gulp-sass');
gulp.task('sass', function () {
return gulp.src(['source/assets/css/**.scss', '!source/assets/css/**/_*.[scss|sass'])
.pipe(sass())
.pipe(gulp.dest('output/assets/css'));
});SASS编译器不会从node_modules导入css。相反,这将抛出一个错误。
Error: File to import not found or unreadable: normalize.css/normalize.发布于 2017-06-15 02:10:55
SASS编译器不知道在哪里查找文件。需要指定位置。
gulp.task('sass', function () {
return gulp.src(['source/assets/css/**.scss', '!source/assets/css/**/_*.[scss|sass'])
.pipe(sass({
includePaths: ['node_modules']
}))
.pipe(gulp.dest('output/assets/css'));
});发布于 2020-12-11 02:06:08
对我来说,2020年的工作是这样的:
function styles() {
return (
gulp.src(paths.styles.src)
.pipe(sourcemaps.init())
.pipe(sass({
includePaths: ['./node_modules/purecss-sass/vendor/assets/stylesheets/',
'./node_modules/modularscale-sass/stylesheets/',
'./node_modules/typi/scss/'
]
}))
.on("error", sass.logError)
.pipe(postcss([autoprefixer(), cssnano()]))
.pipe(sourcemaps.write())
.pipe(gulp.dest(paths.styles.dest))
.pipe(browserSync.stream())
);
}现在在scss文件中,我可以
@import 'modularscale';
@import 'typi';
@import 'purecss';其他选项似乎是:
_somelibrary.scss文件的完整路径直接放在scss文件中(去掉扩展名),因此类似于:@import '../../node_modules/purecss-sass/vendor/assets/stylesheets/_purecss';includePaths: ['./node_modules']并添加相对路径:@import 'purecss-sass/vendor/assets/stylesheets/_purecss';https://stackoverflow.com/questions/44551822
复制相似问题