我正在嘗試從打印節點模塊中的打字稿文件導入。這個文件是不是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