我尝试使用bazel build //core:package
使用@bazel/typescript和bazel的npm_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";
我的问题是:
请帮助!!!
答案 0 :(得分:0)
好的,我自己找到答案。从ts_library文档开始,它没有解释和列出使用名为
的参数的示例。module_name
如果您在尝试构建模块时未传递此参数,则会将文件路径作为模块名称,这将导致导入问题。