如何使用其他代码库中定义的函数?
How can I use functions defined in other Code Repository?
我在代码库 (A) 中定义了一组函数。代码库 A 具有以下结构,我的 class objectController 在 'objectController.ts' 中定义:
- 来源
- index.ts
- objectController.ts
如何在另一个代码库 (B) 中使用 objectController.ts 中定义的函数?
我实际上建议尽可能在同一个代码存储库中工作,但这在某些情况下可能是不可避免的
设置源存储库的步骤:
修改 package.json
以正确发布程序包。
设置一个新的 name
字段来定义包名称在其他存储库中应该是什么。为它加上特定用例的前缀以避免冲突可能是有意义的。
将 main
字段更新为 "dist/Functions.bundle.js"
,将 types
字段更新为 "src/dist/index.d.ts"
。
(可选)设置一个description
.
提交 package.json
更改并在此存储库上发布标签。
验证检查是否通过。
目标存储库中的步骤:
导入您的源存储库。
转到“设置”>“工件”。
单击 + 添加
Select 您的源存储库并将其作为后备存储库导入。
前往 package.json
。在 dependencies
下,添加您在上面的 Source 存储库中设置的包名称(步骤 1.1),并将版本设置为您发布的标签(步骤 2)。
从您的包中导入任何导出的 类 并在您的代码中正常使用它们。
- 注意 : 您必须在上述步骤 (2) 后重新启动 Code Assist 才能正确显示新添加的包。
注意事项
所有代码都必须位于源存储库的 index.ts 中才能正常工作。
目标存储库中使用导入包的单元测试将失败。 (这实际上可能是可以修复的,但我没有让它工作)
您需要确保已将源存储库所依赖的所有 Ontology 对象和关系导入目标存储库。
我也 运行 遇到目标存储库中的输入问题。
错误信息:
Errors:
src/index.ts(6,21): error TS7016: Could not find a declaration file for module '{module_name}'. '{redacted}/repo/functions-typescript/node_modules/{module_name}/dist/Functions.bundle.js' implicitly has an 'any' type.
Try `npm install @types/{module_name}` if it exists or add a new declaration (.d.ts) file containing `declare module '{module_name}';`
解法:
创建一个名为 typings
的文件夹。
在 typings
中创建一个名为 index.d.ts
的文件。
在(2)中创建的文件中如下所示声明模块index.d.ts
。
declare module '{module_name}';
在typeRoots
元素下的tsconfig.json
中添加(2)index.d.ts
中创建的文件的路径
"typeRoots": [
"./typings",
"./node_modules/@types/"
]
我在代码库 (A) 中定义了一组函数。代码库 A 具有以下结构,我的 class objectController 在 'objectController.ts' 中定义:
- 来源
- index.ts
- objectController.ts
如何在另一个代码库 (B) 中使用 objectController.ts 中定义的函数?
我实际上建议尽可能在同一个代码存储库中工作,但这在某些情况下可能是不可避免的
设置源存储库的步骤:
修改
package.json
以正确发布程序包。设置一个新的
name
字段来定义包名称在其他存储库中应该是什么。为它加上特定用例的前缀以避免冲突可能是有意义的。将
main
字段更新为"dist/Functions.bundle.js"
,将types
字段更新为"src/dist/index.d.ts"
。(可选)设置一个
description
.
提交
package.json
更改并在此存储库上发布标签。验证检查是否通过。
目标存储库中的步骤:
导入您的源存储库。
转到“设置”>“工件”。
单击 + 添加
Select 您的源存储库并将其作为后备存储库导入。
前往
package.json
。在dependencies
下,添加您在上面的 Source 存储库中设置的包名称(步骤 1.1),并将版本设置为您发布的标签(步骤 2)。从您的包中导入任何导出的 类 并在您的代码中正常使用它们。
- 注意 : 您必须在上述步骤 (2) 后重新启动 Code Assist 才能正确显示新添加的包。
注意事项
所有代码都必须位于源存储库的 index.ts 中才能正常工作。
目标存储库中使用导入包的单元测试将失败。 (这实际上可能是可以修复的,但我没有让它工作)
您需要确保已将源存储库所依赖的所有 Ontology 对象和关系导入目标存储库。
我也 运行 遇到目标存储库中的输入问题。
错误信息:
Errors: src/index.ts(6,21): error TS7016: Could not find a declaration file for module '{module_name}'. '{redacted}/repo/functions-typescript/node_modules/{module_name}/dist/Functions.bundle.js' implicitly has an 'any' type. Try `npm install @types/{module_name}` if it exists or add a new declaration (.d.ts) file containing `declare module '{module_name}';`
解法:
创建一个名为
typings
的文件夹。在
typings
中创建一个名为index.d.ts
的文件。在(2)中创建的文件中如下所示声明模块
index.d.ts
。declare module '{module_name}';
在
typeRoots
元素下的tsconfig.json
中添加(2)index.d.ts
中创建的文件的路径"typeRoots": [ "./typings", "./node_modules/@types/" ]