【问题标题】:Error code: 800A1391 Source: Microsoft JScript runtime error Running Grunt - Module is undefined错误代码:800A1391 来源:Microsoft JScript 运行时错误 Running Grunt - Module is undefined
【发布时间】:2012-06-15 23:05:00
【问题描述】:

这里是新的 Grunt 用户,他今天使用了很多新工具 (npm nodejs)。

我已经“安装”了 Grunt,并且能够使用这里描述的 init 任务创建一个 grunt.js 文件:http://net.tutsplus.com/tutorials/javascript-ajax/meeting-grunt-the-build-tool-for-javascript/ 和这里:https://github.com/cowboy/grunt/blob/master/docs/getting_started.md。但是每当我运行“grunt”命令时,我都会收到一个错误:

Windows 脚本宿主 脚本:c:\users\[]\Documents\code\grunt\grunt.js 线路:2 字符:1 错误:“模块”未定义 代码:800A1391 来源:Microsoft JScript 运行时错误

【问题讨论】:

    标签: node.js


    【解决方案1】:

    FAQ 中所述,您需要在 Windows 上键入 grunt.cmd,因为操作系统会尝试启动 grunt.js

    或者你可以全局安装 grunt-cli。如果该软件包已本地安装到您的项目中,则该软件包将运行任何版本的 Grunt。

    【讨论】:

    • grunt.cmd 在哪里?我在整个 Grunt 存储库中找不到该名称的任何文件。
    • 我在系统的任何地方都找不到 grunt.cmd。我找到了一个 C:\Documents and Settings\myuserid\Application Data\npm\node_modules\grunt 目录,但是里面没有 grunt.cmd,只有一个 grunt.js,这似乎是问题所在。
    【解决方案2】:

    已解决!!

    所以,出现这个问题是因为 windows 默认关联 *.js > 文件 与 >> “基于 Microsoft Windows 的脚本宿主”。

    grunt 需要默认使用 (grunt.cmd) 打开。

    通过更改默认应用程序(打开方式)很容易解决问题


    指南
    1. 转到任何带有“js”扩展名的 javascript 文件。 (任何文件)

    2. 右键单击(鼠标)> 属性>“打开方式:”更改...(按钮)

    3. 选择记事本(或任何 javascript IDE)。

    问题已解决! :) 祝你好运

    【讨论】:

    • 感谢您的分享,我几乎绝望地解决了这个问题。
    【解决方案3】:

    如果您收到“Microsoft JScript 运行时错误”,这意味着 node.js 甚至没有被调用;相反,Windows Script Host 正在尝试运行您的代码。这可能是文件类型关联的问题; IIRC Windows 默认尝试使用 WSH 执行“.js”文件。您最终可能不得不创建脚本的快捷方式,指定命令行(可能类似于“node %1”)和起始目录,以确保其正确执行。

    如果您能准确地告诉我们您是如何尝试调用您的代码的,将会有所帮助。

    【讨论】:

      【解决方案4】:

      似乎在最新版本的 grunt 模块中,您必须执行以下操作才能使其在 windows 下工作:

      删除所有全局安装的 grunt

      npm uninstall -g grunt
      

      全局安装 grunt-cli

      npm install -g grunt-cli
      

      将 grunt 本地安装到您的项目中

      npm install grunt
      

      全局安装 grunt (v0.4.x) 似乎不再创建必要的 grunt.cmd。似乎现在建议在本地安装 grunt 以便能够使用特定于版本的 Gruntfiles

      【讨论】:

        【解决方案5】:

        正如 Florian F 所建议的,运行 grunt.cmd 是可行的。这是因为 Windows 正在寻找您的 grunt 命令的过程。

        当输入 grunt -h 时,Windows 将继续查找以下文件:

        1. ./grunt.cmd
        2. ./grunt.*(在这种情况下会找到 grunt.js,这就是为什么您会看到“模块未定义”)
        3. %APPDATA%/npm/grunt.cmd

        使用“grunt.cmd”的替代方法是使用grunter,它只是将命令重命名为 grunter...然后您就不再有这个问题了。

        【讨论】:

          【解决方案6】:

          要回答这个问题,首先我们需要了解错误是由Windows Script Host执行造成的。

          现在,使用以下语法从您的 cmd promt 运行代码:

          >node <application_name>.js
          

          这将允许 Node.js 应用程序通过 V8 JavaScript 引擎(Google 的)打开。

          P.S:如果这有助于解决您的问题,请回复,否则在尝试后发布您遇到的问题。

          【讨论】:

          • 这个问题已经有 4 年了,已经得到了很好的回答。您可能需要考虑删除您的答案
          • @JamesJones 哦..!那么我很高兴问题已得到解决.. :-) 但我随时准备解决我知道解决方案的问题..
          【解决方案7】:

          我有类似的问题,问题是文件关联,我会推荐:

          • 右键单击 .js 文件并选择打开方式。
          • 然后选择 nodejs/node.exe(在“程序文件”文件夹中的某个位置
          • 然后勾选显示“始终打开 .js 文件”的复选框(释义)

          这应该可以解决问题。

          【讨论】:

            【解决方案8】:

            我在运行旧的 Node 项目时遇到了同样的问题。

            问题在于 js 文件的名称,它是 node.js。所以在运行node node.js命令时,它打开了一个windows对话框。

            我刚把文件名改成app.js,错误就消失了。

            【讨论】:

              【解决方案9】:

              所以,就我而言,我已经尝试了上述所有方法,但没有任何结果。 但我有我不输入的资金:完整句子中的节点,如下所示 node script.js。记住永远不要低估自己的错误编码。

              【讨论】:

              • 这不是@Arjun上面所说的吗?
              • 我已经尝试了所有第一个,但只是在控制台语句中犯了一个错误
              猜你喜欢
              • 1970-01-01
              • 2012-07-11
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-04-20
              • 2011-03-25
              相关资源
              最近更新 更多