javascript - 无法从全新安装在 npm 上运行脚本

标签 javascript node.js npm command-line-interface

好吧,我新安装了 NodeJS 9.5.0,并仔细检查了 npm 是否为最新版本 (5.6.0),到目前为止,我在从 package.json 文件运行简单脚本时遇到了问题。

这是我在 package.json 文件下的内容。

{
  "name": "hello_world",
  "version": "1.0.0",
  "description": "lab-4-hello-world-app",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
    "start": "node index.js"
  },
  "author": "Java Drinker",
  "license": "ISC"
}

这是我的index.js。值得庆幸的是,Node 能够从 cli 正常运行它。

    console.log("Hello Java Drinker!");

下面是我尝试运行带有调试日志的“启动”脚本时收到的错误消息。

npm ERR! file C:\test\package.json
npm ERR! code EJSONPARSE
npm ERR! Failed to parse json
npm ERR! Unexpected string in JSON at position 187 while parsing '{
npm ERR!   "name": "hello_world",
npm ERR!   "version": '
npm ERR! File: C:\test\package.json
npm ERR! Failed to parse package.json data.
npm ERR! package.json must be actual JSON, not just JavaScript.
npm ERR!
npm ERR! Tell the package author to fix their package.json file. JSON.parse

2018-02-22T07_49_53_423Z-debug.log

0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'run',
1 verbose cli   'start' ]
2 info using npm@5.6.0
3 info using node@v9.5.0
4 verbose stack Error: Failed to parse json
4 verbose stack Unexpected string in JSON at position 187 while parsing '{
4 verbose stack   "name": "hello_world",
4 verbose stack   "version": '
4 verbose stack     at parseError (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:436:11)
4 verbose stack     at parseJson (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:104:26)
4 verbose stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:51:5
4 verbose stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\graceful-fs\graceful-fs.js:78:16
4 verbose stack     at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:528:3)
5 verbose cwd C:\test
6 verbose Windows_NT 10.0.16299
7 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "start"
8 verbose node v9.5.0
9 verbose npm  v5.6.0
10 error file C:\test\package.json
11 error code EJSONPARSE
12 error Failed to parse json
12 error Unexpected string in JSON at position 187 while parsing '{
12 error   "name": "hello_world",
12 error   "version": '
13 error File: C:\test\package.json
14 error Failed to parse package.json data.
14 error package.json must be actual JSON, not just JavaScript.
14 error
14 error Tell the package author to fix their package.json file. JSON.parse
15 verbose exit [ 1, true ]

我想补充一点,我可以很好地运行npm -v..但似乎任何其他命令都会给我带来错误。我想我安装 npm 不正确..?

最佳答案

确保您的package.json文件有效。在提供的示例中,您需要在 test 脚本后添加缺少的逗号 ,(第 6 行末尾):

{
  "name": "hello_world",
  "version": "1.0.0",
  "description": "lab-4-hello-world-app",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node index.js"
  },
  "author": "Java Drinker",
  "license": "ISC"
}

关于javascript - 无法从全新安装在 npm 上运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48922222/

相关文章:

node.js - 使用 fs.readFile 在 Node.js 中读取和返回多个文件

npm - 在 npm 中使用引导图标

node.js - Npm链接在Angular7项目中不起作用

node.js - 如何仅在 Node 版本足够旧的情况下才需要包?

javascript - 使用jquery读取上传的文件路径

javascript - plupload - 限制所选文件的数量

javascript - 使用 ESC 关闭 Bootstrap 模式

javascript - 最有效的加密编码

javascript - 无法使用 Express 正确提供 gzip 压缩文件

javascript - Sails.js - 使用正则表达式的 sails 路线