Невозможно запустить команду grunt из-за ошибки: не удается найти модуль 'liftoff'

Я начинаю простой HTML-проект с Bootstrap 4, где хочу использовать скомпилированный sass. Для этого я установил grunt с помощью node.js и последующих шагов, описанных в https://gruntjs.com/getting-started.

Когда я набираю команду grunt, результат будет:

Error: Cannot find module 'liftoff' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:603:15) at Function.Module._load (internal/modules/cjs/loader.js:529:25) at Module.require (internal/modules/cjs/loader.js:658:17) at require (internal/modules/cjs/helpers.js:22:18) at Object. (C:\Bitnami\nodejs-7.3.0-0\nodejs\node_modules\grunt-cli\bin\grunt:7:15) at Module._compile (internal/modules/cjs/loader.js:722:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:733:10) at Module.load (internal/modules/cjs/loader.js:620:32) at tryModuleLoad (internal/modules/cjs/loader.js:560:12) at Function.Module._load (internal/modules/cjs/loader.js:552:3)

Я попытался разобраться в этом, установив npm install liftoff. Этот модуль был установлен правильно, но я все равно не могу запустить grunt.

Мой gruntfile.js выглядит так:

module.exports = function(grunt) {
'use strict';

grunt.initConfig({
    watch: {
        sass: {
            files: ['sass/**', 'Gruntfile.js'],
            tasks: ['sass'],
        },
        uglify: {
            files: ['js/index.js', 'Gruntfile.js'],
            tasks: ['uglify'],
        }
    },
    sass: {
        production: {
            options: {
                compress: true,
                strictUnits: true
            },
            files: {
                'styles.css': 'styles/styles.sass',
            }
        }
    },
    uglify: {
        options: {
            beautify: true,
            mangle: false,
            compress: {
                drop_console: true
            }
        },
        build: {
            files: {
                'index.min.js': ['js/index.js'],
            }
        }
    }
});

grunt.registerTask('default', ['css', 'js']);
grunt.registerTask('css', ['sass']);
grunt.registerTask('js', ['uglify']);

grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-uglify');
};

Что мне не хватает? Я новичок в npm grunt, так что, возможно, решение простое, но я не нашел ответа, строго связанного с модулем «отрыв». Я пытаюсь сделать это в Windows 7. Спасибо за любую помощь.

Поскольку я не получил ответа, я обнаружил, что у любого проекта на этом компьютере есть проблема с grunt. И ошибка такая же. Так что это, должно быть, глобальная проблема, не только с этим проектом. Я переустановил node.js и grunt, но это не сработало. :( Установил gulp и все ок.

nymphais 27.11.2018 15:20
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
12
1
6 557
3

Ответы 3

Я столкнулся с той же проблемой в Ubuntu 20.04, и я считаю, что это вызвано несколькими версиями nodejs.

Я установил nodejs 12.16.2 вручную (извлеченный в / usr / local), и это была моя ошибка. Как только я попытался установить grunt из диспетчера пакетов Ubuntu, он установил nodejs 10.X как зависимость от пакета node-grunt-cli.

В результате у меня было такое же сообщение об ошибке.

Решение заключалось в том, чтобы удалить вручную установленные nodejs и переустановить его из диспетчера пакетов.

Чтобы добавить к этому, вы не можете просто использовать версию nvm, вы также должен удалите версию из apt.

Declan Tyson 15.05.2020 11:04

Я также применил это при чистой установке на Ubuntu 20.04. В конце концов я нашел рецепт в https://ask.openrouteservice.org/t/cannot-find-module-liftoff/1718/5, который, кажется, решает проблему (не знаю почему) с помощью nvm для установки узла v14.16.1, затем устанавливает grunt-cli глобально и grunt локально:

nvm install v14.16.1
npm install -g grunt-cli
npm install grunt

Спасибо, моя ошибка заключалась в запуске sudo apt install grunt, а не в npm install -g grunt-cli

Novocaine 21.05.2021 13:14

Столкнулся с проблемой при использовании:

  • Ubuntu 20.04 LTS
  • Узел 16.6.1
  • NPM 7.20.3

Исправлена ​​проблема при использовании:

  • Ubuntu 20.04 LTS
  • Узел 8.17.0
  • NPM 7.20.6

Я использовал NVM для понижения версии Node с помощью nvm use 8.17, который исправил ошибку Error: Cannot find module 'liftoff'.

Другие вопросы по теме