20

新的 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 运行时错误
4

9 回答 9

24

常见问题解答中所述,您需要grunt.cmd在 Windows 上键入,因为操作系统会尝试启动 grunt.js

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

于 2012-06-24T10:15:48.883 回答
4

解决了

因此,出现此问题是因为 windows 默认将 < *.js > 文件与 >> "Microsoft Windows Based Script Host" 关联。

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

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


指南

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

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

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

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

于 2016-11-29T11:35:11.723 回答
3

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

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

于 2012-06-16T06:42:19.263 回答
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

于 2013-03-24T13:59:08.367 回答
2

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

键入grunt -hWindows 时将继续查找以下文件:

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

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

于 2013-02-06T02:08:41.377 回答
2

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

现在,使用以下语法从cmd 提示符运行代码:

>node <application_name>.js

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

PS:如果这有助于解决您的问题,请回复,否则在尝试此操作后发布您面临的问题。

于 2016-11-15T05:24:29.843 回答
1

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

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

这应该够了吧。

于 2016-06-13T14:14:39.393 回答
1

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

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

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

于 2020-06-19T07:56:42.090 回答
0

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

于 2020-08-28T18:11:13.080 回答