错误代码:800A1391源:Microsoft JScript运行时错误运行Grunt - 模块未定义

时间:2012-06-15 23:05:00

标签: node.js

今天使用大量新工具(npm nodejs)的新Grunt用户。

我已经“安装”了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 Script Host
Script: c:\users\[]\Documents\code\grunt\grunt.js
Line: 2
Char: 1
Error: 'module' is undefined
Code: 800A1391
Source: Microsoft JScript runtime error

9 个答案:

答案 0 :(得分:24)

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

或者您可以在全球范围内安装grunt-cli。如果已经在本地安装到您的项目中,该软件包将运行任何版本的Grunt。

答案 1 :(得分:3)

似乎在最新版本的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

答案 2 :(得分:2)

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

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

答案 3 :(得分:2)

正如Florian F建议的那样,运行grunt.cmd是有效的。这是因为Windows正在寻找您的grunt命令。

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

  1. ./ grunt.cmd
  2. ./ grunt。*(在这种情况下找到grunt.js,这就是为什么你看到“模块未定义”)
  3. %APPDATA%/ NPM / grunt.cmd
  4. 使用“grunt.cmd”的另一种方法是使用grunter,它只是将命令重命名为grunter ...然后你就不再有这个问题了。

答案 4 :(得分:1)

已解决 !!

因此,出现此问题的原因是Windows默认关联< *。js >档 使用>> "基于Microsoft Windows的脚本主机"。

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

通过更改默认应用程序(以...打开)

,可以轻松解决问题

<小时/> 指南

  1. 使用&#34; js&#34;转到任何javascript文件延期。 (任何文件)

  2. 右键单击(鼠标)&gt;属性&gt; &#34;打开:&#34;变化...(按钮)

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

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

答案 5 :(得分:1)

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

问题出在js文件的名称上,它是node.js。因此,在运行命令node node.js的同时,它正在打开Windows对话框。

我只是将文件名更改为app.js,错误消失了。

答案 6 :(得分:0)

我有类似的问题,问题是文件关联,我建议:

  • 右键单击.js文件,然后选择打开。
  • 然后你选择nodejs / node.exe(在“program files”文件夹
  • 中的某个地方)
  • 然后在勾选框中显示“始终打开.js文件”(释义)

这应该可以解决问题。

答案 7 :(得分:0)

要回答这个问题,首先我们需要了解错误是由于 Windows脚本宿主正在执行错误引起的。

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

>node <application_name>.js

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

P.S:请回复一下,如果这有助于解决您的问题,请在尝试之后解决您遇到的问题。

答案 8 :(得分:0)

因此,就我而言,我尝试了上述所有操作,但没有结果。 但是我有我不输入的资金:以下句子中的完整句子中的节点 node script.js。切记不要低估自己的错误编码。