我正在尝试从打印节点模块中的打字稿文件导入。这个文件是不是transpiled并使用打字稿语法:导入其他打字稿模块
user.ts:
export const getUserFromToken = (token: string) => {
return axios.get('/user', {
headers: { authorization: `Bearer ${token}` }
}).then(({ data }) => data)
}
我导入这样的:import { getUserFromToken } from 'common-files/api/user'
,并且common-files
是的package.json注册的模块。
当尝试编译,我得到:
../commons/api/user.ts
Module parse failed: C:\Users\xxxx\Desktop\xxxx\commons\api\user.ts
Unexpected token (9:38)
You may need an appropriate loader to handle this file type.
| export const getUserFromToken = (token: string) => {
| return axios.get('/user', {
| headers: { authorization: `Bearer ${token}` }
这使,我相信,它没有编译TS文件,因为当我删除字符串类型,它成为一个有效的ES6文件,它正确启动。
在我tsconfig.json
文件我有:
"exclude": [
"node_modules",
"build",
"scripts",
"acceptance-tests",
"webpack",
"jest",
"src/setupTests.ts"
]
我在想,也许排除node_modules,除了包common-files
,但不知道该怎么做。有没有一种很好的方法来实现我想要的?
我假设这是一个自定义模块?模块需要自己编译并发布.js和.d.ts。你在这里看到的问题确实是tsc没有编译这个文件(它怎么知道把它放在哪里),然后webpack(?)解决了由于某种原因导入到.ts文件... –
你如果您使用ts-node而不是节点,则可以包含ts文件而不进行转译。 – lilezek