https://teratail.com/questions/39612のつづき
npm i -D postcss-commentで、postcss-commentをインストールしたのですが、トランスパイスの最中に下記のエラーがでて失敗します。
・エラーログ
Error: [object Object] is not a PostCSS plugin
・gulpfile.js
//gulpfile.js var gulp = require('gulp'); //gulpをインポート var postcss = require('gulp-postcss'); //gulp-postcssをインポート var cssnext = require('postcss-cssnext'); //cssnextをインポート var nested = require('postcss-nested'); var reporter = require('postcss-reporter'); //stylelintだけだとレポートが出力されない為 var csswring = require('csswring'); var calc = require('postcss-calc'); var postcssimport = require('postcss-import'); var postcsscomment = require('postcss-comment'); gulp.task('css', function () { //”css”タスクを登録 var plugins = [ cssnext, //一旦空の配列を作成 nested, reporter, calc, csswring, postcssimport, postcsscomment ]; return gulp.src('./src-before/*.css') //src-before下にある.cssファイルを指定 .pipe(postcss(plugins)) //PostCSSにファイルを処理してもらう .pipe(gulp.dest('./dest-after')); //生成されたCSSをdest-after下に配置 });
どこに問題があるかご存知ですか?
下記の状態だと問題がおきないので、
var postcsscomment = require('postcss-comment');
と
var plugins = [
postcsscomment
];
の記述を追加すると問題が起きて、削除すると起きないのはわかっています。
インストールと追記以外にも必須作業があるということでしょうか?
・
//gulpfile.js var gulp = require('gulp'); //gulpをインポート var postcss = require('gulp-postcss'); //gulp-postcssをインポート var cssnext = require('postcss-cssnext'); //cssnextをインポート var nested = require('postcss-nested'); var reporter = require('postcss-reporter'); //stylelintだけだとレポートが出力されない為 var csswring = require('csswring'); var calc = require('postcss-calc'); var postcssimport = require('postcss-import'); gulp.task('css', function () { //”css”タスクを登録 var plugins = [ cssnext, //一旦空の配列を作成 nested, reporter, calc, csswring, postcssimport ]; return gulp.src('./src-before/*') //src-before下にある.cssファイルを指定 .pipe(postcss(plugins)) //PostCSSにファイルを処理してもらう .pipe(gulp.dest('./dest-after')); //生成されたCSSをdest-after下に配置 });
//以下gulp-watch
gulp.task('watch', function(){
gulp.watch('./src-before/*', ['css']);//監視したいファイルの相対パス
});
・公式サイトのHook requireという部分がわからず行えていません。
Hook requireとはgulpfile.jsのどこかに下記のソースをコピペするということでしょうか?
nodeは難しくてよくわかりません。
>>>
Hook require
require('postcss-comment/hookRequire') var postcss = require('postcss') var fs = require('fs') var file = __dirname + '/inline.css' postcss() .process( fs.readFileSync(file, 'utf8'), { from: file } ) .then(function (result) { console.log(result.css) })
Or:
var postcss = require('postcss-comment/hookRequire') var fs = require('fs') var file = __dirname + '/inline.css' postcss() .process( fs.readFileSync(file, 'utf8'), { from: file } ) .then(function (result) { console.log(result.css) })