准备
我使用的版本为:
- Nodejs: v14.17.3
- Yarn: 1.22.5
- Bzel: 4.1.0
创建一个Typescript项目
选择指定目录,创建一个名为ts-bazel
(其他名字也可以)的文件夹,使用终端进入该文件夹,然后执行npm init
,一路选择默认。
安装Typescipt:
yarn add typescipt -D
创建Typescript配置文件
npx tsc --init
创建src
文件夹,在该文件夹里新建index.ts
文件,并写入一下内容:
function sayHello(name: string) {
console.log(`helle ${name}`);
}
sayHello('daming');
配置Bazel
安装bazel等相关依赖:
yarn add @bazel/bazelisk @bazel/ibazel @bazel/typescript -D
在根目录里创建WORKSPACE
, 并写入以下内容:
workspace(
name = "ts-bazel",
managed_directories = {"@npm": ["node_modules"]},
)
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
sha256 = "275744d287af4c3a78d7c9891f2d970b7bc7eca8cfc0e9a671fe6258d09ff217",
urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.0.0-rc.1/rules_nodejs-4.0.0-rc.1.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "check_rules_nodejs_version", "node_repositories", "yarn_install")
check_rules_nodejs_version(minimum_version_string = "2.2.0")
# Setup the Node.js toolchain
node_repositories(
node_version = "14.17.3",
package_json = ["//:package.json"],
)
yarn_install(
name = "npm",
package_json = "//:package.json",
yarn_lock = "//:yarn.lock",
)
package(default_visibility = ["//visibility:public"])
exports_files(["tsconfig.json"])
在src
文件夹中创建BUILD.bazel
文件,并写入以下内容:
package(default_visibility = ["//visibility:public"])
load("@npm//@bazel/typescript:index.bzl", "ts_project")
ts_project(
name = "index",
srcs = ["index.ts"],
tsconfig = "//:tsconfig.json",
visibility = ["//visibility:public"],
)
编译
现在可以使用bazel
编译项目了!
bazel build //src:index
检查一下结果
node bazel-bin/src/index.js
输出结果为:
helle daming
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。