我有一个用typescript制作的模块,我没有编译成javascript,因为我想让我的主应用程序这样做。 因此,我有一个文件结构是这样的:node_modules中的typescript模块应该已经编译
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代码不抱怨,它发现该模块,并给我intellisens。然而当运行程序时,我得到:
Error: Cannot find module 'my-module'
虽然它工作得很好,但它是我正在导入的接口。因此,我认为这是因为typescript不遵循导入和编译,我认为它会这样做。
在发布到npm之前,我是否必须将我的打字稿模块编译为javascript,或者是否存在可供我使用的设置?
PS:如果我在发布到npm之前编译,它工作正常。我只是想知道:我必须这样做吗?
你的回答的语气似乎暗示这只是最好的做法,但即使没有编译过的'.js',它也应该可以工作。我可以编译它预先发布,但是,如果它没有编译时不起作用,这意味着当我编译它并发布到npm时,那么当我使用该模块时,它将使用已编译的'.js'和不编译'.ts'。这是我对此的掌握,因为也许我想在第二个项目中使用不同的配置进行编译 – Ced