在HackerRank创建npm包时报错,我遗漏了什么配置?
错误原因
HackerRank的评测脚本默认会在/projects/challenge根目录读取package.json和node_modules文件,你额外创建了npm_package子目录,所有配置和依赖都安装在了子目录下,评测脚本扫描根目录找不到对应文件,所以全量报错。
修正方案
推荐操作(直接在根目录执行,避免路径问题)
先删除之前创建的npm_package子目录,回到/projects/challenge根目录,按以下步骤执行:
- 非交互式初始化
package.json,直接匹配题目要求的应用名和入口配置,避免手动输入出错:
npm init -y --name npm_package --entry-point index.js
- 安装生产依赖:
- 安装最新版react:
npm install react@latest --save - 安装主版本4、次版本17的Lodash:
npm install lodash@4.17.x --save - 安装主版本4的Redux:
npm install redux@4.x --save
- 安装开发依赖:
- 安装测试用Mocha:
npm install mocha --save-dev - 安装主版本6的Eslint:
npm install eslint@6.x --save-dev
兼容原有操作的修正方案
如果不想删除已经完成的子目录配置,直接把子目录下的所有文件移动到根目录即可:
mv /projects/challenge/npm_package/* /projects/challenge/ mv /projects/challenge/npm_package/.* /projects/challenge/ 2>/dev/null
额外注意点
你之前安装依赖时指定了固定的次级版本号(比如lodash@4.17.0),部分评测规则会要求匹配对应大版本下的所有可用次级版本,用4.17.x、4.x、6.x的写法匹配范围版本,通过率更高。同时不要使用交互式npm init,很容易因为漏改默认的应用名、入口文件配置导致校验失败。
内容的提问来源于stack exchange,提问作者Octavio Santiesteban
相关产品推荐
相关产品推荐

