【发布时间】:2021-08-27 17:41:04
【问题描述】:
当我运行 yarn run watch(在我的 laravel 项目根目录中)时,它编译时没有错误。但是,如果我之后编辑一个文件,它会在终端中为我的resources 文件夹中的每个.ts 文件显示一个错误。 .vue 文件中的打字稿没有问题。另请注意,我所做的每项更改似乎也都已编译,因此换句话说,它可以工作...但错误消息仍保留在控制台中。
每个.ts 文件的错误是:
TS2307: Cannot find module '!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js' or its corresponding type declarations.
这个文件确实存在于我的node_module 文件夹中。
我用谷歌搜索了它,我发现远程接近我的问题的唯一东西是这个链接: https://github.com/vuejs/vue-loader/issues/634
但是那里建议的解决方案/解决方法都不适合我。
这是我的 tsconfig
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"experimentalDecorators": true,
},
"include": [
"resources/js/**/*"
],
"exclude": [
"vendor",
]
}
我怀疑这是ts-loader 或vue-loader 中的配置问题或版本问题。
"ts-loader": "^8.2.0",
"typescript": "^4.3.2"
"vue-loader": "^15.7.0",
webpack 配置:
module: {
rules: [
{
test: /\.tsx?$/,
loader: "ts-loader",
options: {appendTsSuffixTo: [/\.vue$/]},
exclude: /node_modules/
},
]
},
resolve: {
extensions: ["*", ".js", ".jsx", ".vue", ".ts", ".tsx"]
}
请记住,我必须使用 8.2. 才能使 laravel-mix 能够使用它。我也使用vue-class-components 和vue-property-decator
【问题讨论】:
-
更新你的
package.json文件然后运行这个 npm update laravel-mix
标签: laravel typescript vue.js