Importing Vue Components In Typescript File
I have been trying to use Vue.js with TypeScript and I came across this repo. I faced issues here that I am getting error while importing Vue Single Component File from TypeScript.
Solution 1:
From Alex Jover:
If your editor is yelling at the line import App from './App' in main.js file about not finding the App module, you can add a vue-shim.d.ts file to your project with the following content:
declaremodule"*.vue" {
importVuefrom'vue'exportdefaultVue
}
and write :
importAppfrom'./App.vue'
instead of
importAppfrom'./App'
Solution 2:
Check out vue-class-component
. Basically, you must add appendTsSuffixTo: [/\.vue$/]
to ts-loader
's options and esModule: true
to vue-loader
's options.
// webpack.config.js
{ modules: { rules: [
{
test: /\.ts$/,
exclude: /node_modules|vue\/src/,
loader: "ts-loader",
options: { appendTsSuffixTo: [/\.vue$/] }
},
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
esModule: true
}
}
]}}
I may have missed something else.
Solution 3:
When using the vue-cli, adapt vue-loader-conf.js as follows:
var utils = require('./utils')
var config = require('../config')
var isProduction = process.env.NODE_ENV === 'production'module.exports = {
loaders: utils.cssLoaders({
sourceMap: isProduction
? config.build.productionSourceMap
: config.dev.cssSourceMap,
extract: isProduction, esModule: true
}), esModule: true
}
Solution 4:
FYI, you can generate . d.ts file for your components by turn on declaration generate in tsconfig. json, copy them to the source dir, see what you've got!
Post a Comment for "Importing Vue Components In Typescript File"