@dddddddddddd (陸 加治屋)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

gulpを使ってのsassからcssへのコンパイルができない

解決したいこと

node.jpをダウンロードしてnpmもインストールしてgulp-cilも入れたうえで
コマンドプロンプトでgulp sassやgulp sass:watchを実行しようとすると

発生している問題・エラー

Error: Cannot find module 'sass'
Require stack:
- C:\Users\rikup\OneDrive\ドキュメント\sintest.sass\gulpfile.js
- C:\Users\rikup\AppData\Roaming\npm\node_modules\gulp-cli\lib\shared\require-or-import.js
- C:\Users\rikup\AppData\Roaming\npm\node_modules\gulp-cli\lib\versioned\^4.0.0\index.js
- C:\Users\rikup\AppData\Roaming\npm\node_modules\gulp-cli\index.js
- C:\Users\rikup\AppData\Roaming\npm\node_modules\gulp-cli\bin\gulp.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:889:15)
    at Function.Module._load (internal/modules/cjs/loader.js:745:27)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (internal/modules/cjs/helpers.js:92:18)
    at Object.<anonymous> (C:\Users\rikup\OneDrive\ドキュメント\sintest.sass\gulpfile.js:4:33)
    at Module._compile (internal/modules/cjs/loader.js:1072:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
    at Module.load (internal/modules/cjs/loader.js:937:32)
    at Function.Module._load (internal/modules/cjs/loader.js:778:12)
    at Module.require (internal/modules/cjs/loader.js:961:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    'C:\\Users\\rikup\\OneDrive\\ドキュメント\\sintest.sass\\gulpfile.js',
    'C:\\Users\\rikup\\AppData\\Roaming\\npm\\node_modules\\gulp-cli\\lib\\shared\\require-or-import.js',
    'C:\\Users\\rikup\\AppData\\Roaming\\npm\\node_modules\\gulp-cli\\lib\\versioned\\^4.0.0\\index.js',
    'C:\\Users\\rikup\\AppData\\Roaming\\npm\\node_modules\\gulp-cli\\index.js',
    'C:\\Users\\rikup\\AppData\\Roaming\\npm\\node_modules\\gulp-cli\\bin\\gulp.js'
  ]
}

こんなメッセージが出てきてcssのコンパイルができない状態です

0 likes

1Answer

同じ質問を2度投稿しないでください。こちらで回答した gulp-sass v5 への移行手順は試しましたか?

1Like

Comments

  1. @dddddddddddd

    Questioner

    英語読めません 日本語訳もわけわからん
  2. @dddddddddddd

    Questioner

    そもそもgulp最近入れたし最初は使えてた
  3. では npm install sass --save-dev を実行してください。 gulpfile.js の中に require('gulp-sass')); があれば require('gulp-sass')(require('sass')); に書き換えてください。
  4. @dddddddddddd

    Questioner

    全部あります
    varかconstは重要ですか?
  5. gulp をいつ入れたかは関係ありません。 gulp-sass のバージョンと gulpfile.js の内容が食い違うと起きる問題なので。
  6. var か const かは関係ないです。まだ動かなければ gulpfile.js の中身を貼ってください。
  7. @dddddddddddd

    Questioner

    ```
    'use strict';

    var gulp = require('gulp');
    var sass = require('gulp-sass')(require('sass'));
    var sassGlob = require('gulp-sass-glob');
    var sourcemaps = require('gulp-sourcemaps');
    var plumber = repuire('gulp-plumber');
    var notify = repuire('gulp-notify');
    var postcss = repuire('gulp-postcss');
    var autoprefixer = require('autoprefixer');
    var assets = require('postcss-assets');
    var cssdeclsort = require('css-declaration-sorter');
    var mqpacker = require('css-mqpacker');

    function buildStyles() {
    return gulp.src('./sass/**/*.scss')
    .pipe(plumber({errorHandler: notify.onError("Error: <%= error.message %>")}))
    .pipe(sourcemaps.init())
    .pipe(sassGlob())
    .pipe(sass({outputStyle: 'expanded'}))
    .pipe(sass().on('error', sass.logError))
     .pipe(postcss([mqpacker()]))
    .pipe(postcss([cssdeclsort({order: 'smacss'})]))//プロパティを自動でソートしてくれる
    .pipe(postcss([assets({loadPaths: ['images/', './icons', './banners']/*[,relative: true]←相対パスにしたい場合これを追加
    [,baseUrl: 'http://example.com/wp-content/themes/']←任意のurlにしたい時 relative trueが優先される*/})]))
    //.pipe(postcss([autoprefixer({browsers: ['last 1 versions, ie 10']})]))
    //last 1 versionsを指定  特定のブラウザの指定も可能
    .pipe(sourcemaps.write('./css'))
    .pipe(gulp.dest('./css'));
    };

    exports.buildStyles = buildStyles;
    exports.watch = function () {
    gulp.watch('./sass/**/*.scss', ['sass']);
    };

    ```
  8. 書き換え方は合っているようですね。 sintest.sass フォルダの中で npm why gulp-sass sass を実行してその結果を貼ってもらえますか?以下のようになるはずです。

    gulp-sass@5.0.0
    node_modules/gulp-sass
    gulp-sass@"^5.0.0" from the root project

    sass@1.43.2
    node_modules/sass
    sass@"^1.43.2" from the root project
  9. @dddddddddddd

    Questioner

    Usage: npm <command>

    where <command> is one of:
    access, adduser, audit, bin, bugs, c, cache, ci, cit,
    clean-install, clean-install-test, completion, config,
    create, ddp, dedupe, deprecate, dist-tag, docs, doctor,
    edit, explore, fund, get, help, help-search, hook, i, init,
    install, install-ci-test, install-test, it, link, list, ln,
    login, logout, ls, org, outdated, owner, pack, ping, prefix,
    profile, prune, publish, rb, rebuild, repo, restart, root,
    run, run-script, s, se, search, set, shrinkwrap, star,
    stars, start, stop, t, team, test, token, tst, un,
    uninstall, unpublish, unstar, up, update, v, version, view,
    whoami

    npm <command> -h quick help on <command>
    npm -l display full usage info
    npm help <term> search for help on <term>
    npm help npm involved overview

    Specify configs in the ini-formatted file:
    C:\Users\rikup\.npmrc
    or on the command line via: npm <command> --key value
    Config info can be viewed via: npm help config

    npm@6.14.15 C:\Program Files\nodejs\node_modules\npm
  10. ああすみません、 npm 6.14.15 だとまだ npm why コマンドが使えないようですね。
  11. package.json の中に
    "gulp-sass": "^5.0.0"

    "sass": "^1.43.2"
    は存在しますか?バージョン番号は多少違ってもいいですが両方存在する必要があります。
  12. @dddddddddddd

    Questioner

    {
    "name": "test_profect",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
    },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "devDependencies": {
    "css-declaration-sorter": "^6.1.3",
    "css-mqpacker": "^7.0.0",
    "gulp": "^4.0.2",
    "gulp-sass": "^5.0.0",
    "postcss-assets": "^6.0.0",
    "sass": "^1.43.2"
    }
    }
  13. その gulpfile.js は require() を repuire() と打ち間違えていますし、 gulp sass を実行したとしても sass タスクが登録されていないので動きません。最初使えていたというものと別のものを貼っていませんか?

    ともかく、その gulpfile.js は以下の修正を加えると動くようになります。

    1. repuire() を require() に直す。

    2. gulp を実行すると Cannot find module 'パッケージ名' とエラーが出るので、 npm install パッケージ名 --save-dev を実行する。また gulp を実行すると別のパッケージ名で同じエラーが出るので、エラーが消えるまでこの手順を繰り返す。

    3. gulp sass タスクは存在しない。代わりに gulp buildStyles を実行する。

Your answer might help someone💌