gpt4 book ai didi

javascript - node_modules 中的 typescript 模块是否已经编译

转载 作者:行者123 更新时间:2023-12-01 03:50:45 25 4
gpt4 key购买 nike

我有一个用 typescript 制作的模块,我没有将其编译为 javascript,因为我希望我的主应用程序这样做。因此我有一个像这样的文件结构:

my-project
---node_modules
------my-module
---------index.ts
---src
------myfile.ts

myfile.ts

import { x } from 'my-module';

tsconfig

{
"compilerOptions": {
"target": "es5",
"lib": ["es6", "dom"],
"types": ["reflect-metadata"],
"module": "commonjs",
"moduleResolution": "node",
"experimentalDecorators": true,
"emitDecoratorMetadata": false,
"sourceMap": true,
"declaration": false,
"outDir": "out"
},
"exclude": [
"node_modules",
"out"
]
}

Visual Studio 代码不会提示,它会找到模块并为我提供智能感知。但是,当运行该程序时,我得到:

Error: Cannot find module 'my-module'

虽然当它是我导入的接口(interface)时它工作得很好。因此我认为这是因为 typescript 不遵循导入并编译它们,我认为它会这样做。

在将 typescript 模块发布到 npm 之前,我是否必须将其编译为 javascript,或者是否有一个设置可以让我不必这样做?

PS:如果我在发布到 npm 之前进行编译,效果会很好。我只是想知道:我必须这样做吗?

最佳答案

作为一般最佳实践,您应该将包“二进制文件”发布到 npm。对于 TypeScript,这意味着转译的 .js 文件。

这允许您的包的用户使用它,而无需额外复杂地构建它。也就是说,二进制文件直接“可供使用”。

也就是说,如果您还包含 (TS) 源,您仍然可以在项目中以任何您喜欢的方式编译它们,具体取决于您的包。换句话说,仅仅因为您提供二进制文件是为了方便,最终用户就可以选择直接在其项目中使用源代码。

关于javascript - node_modules 中的 typescript 模块是否已经编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43230573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com