我有一個SomeClass.ts
贊:
class SomeClass {
constructor () {
console.log('created someclass')
}
}
export default SomeClass
編譯為SomeClass.js
'use strict'
exports.__esModule = true
const SomeClass = /** @class */ (function () {
function SomeClass () {
console.log('created someclass')
}
return SomeClass
}())
exports.default = SomeClass
并被匯入到類似的腳本標簽中App.svelte
:
<script>
import SomeClass from "./SomeClass";
const instance = new SomeClass();
</script>
但是在運行應用程式時出現錯誤:
Uncaught SyntaxError: import not found: default
在生成的行上:import SomeClass from "/src/SomeClass.js?t=1655451078055";
筆記:
只需在 SomeClass.js 中使用常規 ES6 風格類 & 就可以正常export default MyClass
作業,但還不如洗掉 Typescript ...
安裝了 svelte-preprocess
npm install -D svelte-preprocess
更新vite.config.js
如下:
import { defineConfig } from 'vite'
import { svelte } from '@sveltejs/vite-plugin-svelte'
import sveltePreprocess from 'svelte-preprocess' // <--- added this
// https://vitejs.dev/config/
export default defineConfig({
plugins: [svelte({
preprocess: sveltePreprocess() // <--- added this
})]
})
洗掉了編譯后的 .js,現在直接使用 Typescript 檔案沒問題!
uj5u.com熱心網友回復:
該類是使用與 Svelte(ES 模塊)預期的不同的模塊系統(CommonJS)編譯的。
我不建議單獨編譯該類,而是通過使用標簽svelte-preprocess
直接在組件中使用和匯入/使用 TypeScript 源。<script lang="ts">
然后該類應與組件代碼一起編譯。
如果該類未在其他任何地方使用,您也可以將module
選項更改"esnext"
為相應的tsconfig.json
.
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/492381.html
標籤:javascript 打字稿 进口 模块 苗条
上一篇:無法使用querySelectorAll打開下拉選單
下一篇:如何使用貓鼬過濾已洗掉的用戶?