Как использовать модуль причины из локального пакета

Я ищу способ использовать локальный пакет (с именем bs-package) из моего приложения Reason React (с именем ApplicationA).

bs-package имеет один файл в папке src с именем ModuleA.re:

let greet_me = (me) => Js.log("Hello, " ++ me ++ "!");

В ApplicationA я сделал:

npm install /path/to/bs-package

В node_modules bs-package теперь отображается как символическая ссылка.

Затем добавил bs-package в bs-dependencies в bsconfig

"bs-dependencies": [
    "reason-react",
    "bs-package",
],

Затем запустите make world в ApplicationA

bsb -make-world 

Теперь в моем приложении Reason React

ModuleA.greet_me("John");

Дает мне

несвязанный модуль ModuleA

Что мне не хватает?

РЕДАКТИРОВАТЬ

Вот конфигурационный файл bs-package

Он был создан с

bsb -init bs-package -theme basic-reson

bsconfig.json

{
    "name": "bs-pacakge",
    "version": "0.1.0",
    "sources": {
        "dir" : "src",
        "subdirs" : true
    },
    "package-specs": {
        "module": "commonjs",
        "in-source": true
    },
    "suffix": ".bs.js",
    "bs-dependencies": [

    ],
    "warnings": {
        "error" : "+101"
    },
    "namespace": true,
    "refmt": 3
}

package.json

{
    "name": "bs-pacakge",
    "version": "0.1.0",
    "scripts": {
        "build": "bsb -make-world",
        "start": "bsb -make-world -w",
        "clean": "bsb -clean-world"
    },
    "keywords": [
        "BuckleScript"
    ],
    "author": "",
    "license": "MIT",
    "devDependencies": {
        "bs-platform": "^5.0.6"
    }
}

Как было предложено, bs-package имеет пространство имен, поэтому это должно работать

BsPackage.ModuleA.greet_me("name")

Но появляется та же ошибка

несвязанный модуль BsPackage

1 ответ

Решение

Видимо ошибка возникла из моей версии bs-platform. Я только что переключился с версии 6.2.1 на версию 7.0.1, и теперь все работает нормально (я на Windows).

Другие вопросы по тегам