【发布时间】:2017-10-17 03:19:25
【问题描述】:
在 RSpec 的启发下,我开始创建一个原生 Reason 单元测试库(我之前为 F# 做过一个)
我想调用库Respect,但由于已经有一个名为“尊重”的 npm 包,我将 npm 库命名为“重新尊重”。但是我的bsconfig.json指定包名为respect
{
"name": "Respect",
"version": "0.1.0",
"namespace": true,
"sources": [
{"dir": "src"},
{
"dir": "tests",
"type": "dev"
}
],
"bs-dependencies" : [
// add your bs-dependencies here
]
}
我推送了这个包,并从一个测试项目中导入了它,我在其中引用了Respect 命名空间。我在项目中有这个原因源文件:
open Respect.Dsl;
describe "Foo" [
it "has a test" (fun _ => ())
] |> register;
!rootContext |> run;
使用npm run build 构建代码可以正常工作,但是当我运行测试时,出现错误:
module.js:529
throw err;
^
Error: Cannot find module 'Respect/lib/js/src/dsl.js'
at Function.Module._resolveFilename (module.js:527:15)
...
错误很明显 - npm 包安装在 node_modules/re-respect 而不是 node_modules/Respect 它试图找到代码的地方。
我是否正在尝试做我不应该做的事情?我的根命名空间应该跟在 NPM 包名后面吗?我需要找一个新名字吗?
附言在我写这篇文章时,我意识到 package.json 和 bsconfig.json 中的版本号之间存在差异 - 但我怀疑这是问题的根源。
【问题讨论】:
标签: reason bucklescript bsconfig