对于一个新项目,我必须保持webpack-only,因此需要找到一种方法来有效地编译我们的样式表。基本上是以非常粗鲁的方式:
src/**/*.less
(css顺序可能是任意的)../node_modules/vendor/**/*.css
或3rdparty/master.less
bogus.js
入口点,那么......)cssnano
执行其优化工作,具有特定的css nano选项,例如orderedValues: false, normalizeWhitespace: true
... styles.css
写为最终输出当然:
styles.css.map
我做的事情 不 需要css modules
(css imported
进入节点模块以进行“作用域”使用,以散列作用形式出现选择器...)
这个SO问题有我的first attempt我在合并之后在中间卡住了地狱......
到目前为止的我知道,对于webpack,包括css甚至字体和图像在内的任何资源都是一个“模块”......而不是将我的css“模块”与实际的js合并(仅限于后来的苦心经营)再次将它们再次分开),并行一个切入点cssstub.js
可能更明智 - 也称为multi-compiler mode。
但是真的,我的智慧结束了......在webpack中对一组文件执行一系列$ thing看起来真的很难(除非它是一个连接的javascript模块图)。我确实找到something on globbing,但这还不够(合并css,cssnano,......)而且大多数情况下我根本无法将这些碎片粘在一起......
答案 0 :(得分:-2)
我已经使用gulp来构建更少的东西,并创建如下所示的相应地图:
第一步编译较少并在tmp文件夹中生成css
gulp.task('compile-less', function () {
gulp.src('./*.less') // path to your file
.pipe(less().on('error', function(err) {
console.log(err);
}))
.pipe(gulp.dest('./tmp/'));
});
第二步缩小生成的css并创建地图文件
gulp.task('build-css', ['clean'], function() {
return gulp.src('./tmp/**/*.css')
.pipe(sourcemaps.init())
.pipe(cachebust.resources())
.pipe(sourcemaps.write('./maps'))
.pipe(gulp.dest('./compiled/css'));
});
如果您愿意,可以添加额外的步骤来协调生成的CSS。