3

我正在尝试使用 Jest 为使用sails.js 的新项目设置一些单元测试

不幸的是,Jest 似乎正在扫描并解析到sails 项目的 node_modules 目录中,它在 package.json 文件中出现解析错误。这个文件实际上不是一个有效的 package.json 文件,它是一个用来生成sails 项目的package.json 文件的模板。

这是一个需要在 Jest 中修复的错误,还是我可以使用配置选项让它忽略这个文件/目录?

复制说明:

npm install -g sails jest-cli
sails new jesttest
cd jesttest
npm install
jest

错误信息:

Using Jest CLI v0.2.1
Error parsing `c:\work\jesttest\node_modules\sails\node_modules\sails-generate\node_modules\sails-generate-adapter\templates\boilerplate\package.json`!

c:\Users\USERNAME\AppData\Roaming\npm\node_modules\jest-cli\node_modules\node-haste\lib\loader\ProjectConfigurationLoader.js:64
      throw e;
            ^
SyntaxError: Unexpected token <
  at Object.parse (native)
  at ProjectConfigurationLoader.loadFromSource (c:\Users\USERNAME\AppData\Roaming\npm\node_modules\jest-cli\node_modules\node-haste\lib\loader\ProjectConfigurationLoader.js:61:46)
  at c:\Users\USERNAME\AppData\Roaming\npm\node_modules\jest-cli\node_modules\node-haste\lib\loader\ResourceLoader.js:90:10
  at fs.js:266:14
  at c:\Users\USERNAME\AppData\Roaming\npm\node_modules\jest-cli\node_modules\graceful-fs\graceful-fs.js:104:5
  at Object.oncomplete (fs.js:107:15)
4

2 回答 2

6

事实证明这相当容易 - 对于有同样问题的其他人,只需将以下内容添加到您的 package.json 文件中:

"scripts": {
  "start": "node app.js",
  "debug": "node debug app.js",
  "test": "jest"
},
"jest": {
  "modulePathIgnorePatterns": ["sails-generate-adapter"]
}
于 2014-12-28T07:59:04.437 回答
1

如果有人感兴趣,请进行更深入的解释:该适配器生成器中的“package.json”不是 package.json,而是一个 ejs 模板。帆有很多这样的,所以如果你使用多个附加组件,你将不得不继续向该列表添加东西。旁注,如果您将客户端代码放在单独的项目(repo)中,您将不会遇到此问题。

于 2015-02-06T20:46:09.243 回答