Я начинаю простой 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. Спасибо за любую помощь.





Я столкнулся с той же проблемой в Ubuntu 20.04, и я считаю, что это вызвано несколькими версиями nodejs.
Я установил nodejs 12.16.2 вручную (извлеченный в / usr / local), и это была моя ошибка. Как только я попытался установить grunt из диспетчера пакетов Ubuntu, он установил nodejs 10.X как зависимость от пакета node-grunt-cli.
В результате у меня было такое же сообщение об ошибке.
Решение заключалось в том, чтобы удалить вручную установленные nodejs и переустановить его из диспетчера пакетов.
Чтобы добавить к этому, вы не можете просто использовать версию nvm, вы также должен удалите версию из apt.
Я также применил это при чистой установке на 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
Столкнулся с проблемой при использовании:
Исправлена проблема при использовании:
Я использовал NVM для понижения версии Node с помощью nvm use 8.17, который исправил ошибку Error: Cannot find module 'liftoff'.
Поскольку я не получил ответа, я обнаружил, что у любого проекта на этом компьютере есть проблема с grunt. И ошибка такая же. Так что это, должно быть, глобальная проблема, не только с этим проектом. Я переустановил node.js и grunt, но это не сработало. :( Установил gulp и все ок.