【问题标题】:Cannot run grunt command because of error: cannot find module 'liftoff'由于错误无法运行 grunt 命令:找不到模块“liftoff”
【发布时间】:2019-04-23 19:58:42
【问题描述】:

我正在使用 Bootstrap 4 开始一个简单的 HTML 项目,我想在其中使用已编译的 sass。为此,我使用 node.js 安装了 grunt,并在 https://gruntjs.com/getting-started 中描述了后续步骤。

当我输入grunt 命令时,结果是:

错误:在以下位置找不到模块“liftoff” Function.Module._resolveFilename (内部/模块/cjs/loader.js:603:15) 在 Function.Module._load (internal/modules/cjs/loader.js:529:25) 在 Module.require (internal/modules/cjs/loader.js:658:17) 在需要(内部/模块/cjs/helpers.js:22:18) 在对象。 (C:\Bitnami\nodejs-7.3.0-0\nodejs\node_modules\grunt-cli\bin\grunt:7:15) 在 Module._compile (internal/modules/cjs/loader.js:722:30) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:733:10) 在 Module.load (internal/modules/cjs/loader.js:620:32) 在 tryModuleLoad (internal/modules/cjs/loader.js:560:12) 在 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 很陌生,所以也许解决方案很简单,但我没有找到与“liftoff”模块严格相关的答案。我正在尝试在 Windows 7 上执行此操作。感谢您的帮助。

【问题讨论】:

  • 由于我没有得到答案,我发现这台计算机上的任何项目都存在 grunt 问题。错误是一样的。所以它一定是一个全球性的问题,不仅仅是这个项目。我已经重新安装了 node.js 和 grunt 但它没有用。 :( 我已经安装了 gulp,一切正常。

标签: windows npm sass gruntjs


【解决方案1】:

我在 Ubuntu 20.04 下也遇到过同样的问题,我相信这是由几个版本的 nodejs 引起的。

我手动安装了 nodejs 12.16.2(解压到 /usr/local),这是我的错误。一旦我尝试从 Ubuntu 包管理器安装 grunt,它就会安装 nodejs 10.X 作为 node-grunt-cli 包的依赖项。

结果我收到了同样的错误信息。

解决方案是删除手动安装的 nodejs 并从包管理器中重新安装。

【讨论】:

  • 补充一点,你不能只使用nvm版本,你必须从apt中卸载版本。
【解决方案2】:

我也在 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
【解决方案3】:

使用时遇到的问题:

  • Ubuntu 20.04 LTS
  • 节点 16.6.1
  • NPM 7.20.3

修复使用时的问题:

  • Ubuntu 20.04 LTS
  • 节点 8.17.0
  • NPM 7.20.6

我使用NVM 使用nvm use 8.17 降级Node 版本,从而修复了错误Error: Cannot find module 'liftoff'

【讨论】:

    猜你喜欢
    • 2020-01-24
    • 2015-03-07
    • 2021-09-11
    • 2015-04-07
    • 2017-01-25
    • 2016-04-30
    • 1970-01-01
    • 2023-03-13
    • 2018-01-20
    相关资源
    最近更新 更多