Не в состоянии импортировать машинописный модуль, построенный из базеля - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь построить модуль узла, используя @ bazel / typescript и npm_package правила базеля, используя bazel build //core:package.Ниже мой файл BUILD

package(default_visibility = ["//visibility:public"])
load("@npm_bazel_typescript//:index.bzl", "ts_library")
load("@build_bazel_rules_nodejs//:defs.bzl", "npm_package")

ts_library(
  name = "core",
  srcs = glob(["*.ts"]),
)

npm_package(
  name = "package",
  srcs = ["package.json"],
  deps = [":core"],
  replacements = {"//internal/": "//"},
)

Затем я запускаю bazel run //core:package.pack, и он генерирует файл .tgz, и я устанавливаю этот модуль, запустив npm install ./xxx.tgz -s.Все работает хорошо, пока я не пытаюсь импортировать этот модуль, используя import * as core from 'core';

Это дает мне сообщение об ошибке Error: Cannot find module 'core/index'

Файлы объявлений модуля выглядят так:

/// <amd-module name="core/index" />
export * from './public_api';

/// <amd-module name="core/public_api" />
export declare const foo = "foo";
export declare const bar = "bar";

Мои вопросы:

  1. Не удается импортировать, потому что это модуль amd?
  2. Как решить эту проблему?

Пожалуйста, помогите !!!

1 Ответ

0 голосов
/ 14 мая 2019

Хорошо, я сам найду ответ. Из документа ts_library он не объясняет и не перечисляет пример использования параметра с именем

module_name

Если вы не передадите этот параметр при попытке построить модуль , в качестве имени модуля будет указан путь к файлу, что приведет к проблемам с импортом.

...