我有一个使用laravel-mix
和一些Vue组件构建的相对较旧的项目,我想我会更新它的所有脚本。
经过多次更改后,我不断收到此错误:
Vue packages version mismatch:
- vue@2.5.13
- vue-template-compiler@2.3.3
此时,我尝试npm update vue
和npm update vue-template-compiler
,但遇到了类似的问题。然后,我接受了一些建议,以及#34; nuke" node_modules并再次安装所有内容。
我遇到类似问题再次并对我的package.json
进行了一些更改,重新安装了所有内容,现在我的构建脚本运行良好。
在浏览器中,没有任何组件正在加载。在控制台中,对于页面上的每个组件,我收到以下错误:
[Vue warn]: Failed to mount component: template or render function not defined.
found in
---> <WorldMap>
<Root>
我检查过以下内容......
<world-map>
标记位于页面上,正在加载WorldMap
组件export default {
render
功能,所以没有功能,但我已将其视为解决方案我错过了一个关键的vue模块吗?我的很多搜索都说安装了vue的运行时版本,但到目前为止我的设置从未需要任何更改。
我是npm noob,所以随时光顾我/解释
这是我的package.json
{
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"axios": "^0.17",
"bootstrap-sass": "^3.3.7",
"browser-sync": "^2.23.5",
"browser-sync-webpack-plugin": "^1.2.0",
"cross-env": "^5.1",
"jquery": "^3.2",
"laravel-mix": "^1.0",
"lodash": "^4.17.4",
"vue": "^2.5.7"
},
"dependencies": {
"bodymovin": "^4.13.0",
"jquery-match-height": "^0.7.2",
"medium-editor": "^5.23.3",
"numeral": "^2.0.6",
"rangeslider.js": "^2.3.2",
"rellax": "^1.5.0",
"vue-loader": "^13.7.0",
"vue-sortable": "^0.1.3"
}
}
答案 0 :(得分:1)
我记得有这个,其中一个更新中引入了一个重大变化。
如果您使用require加载组件,则需要在末尾添加.default调用。
这是我的boot.js
new Vue({
el: "#app-root",
store,
router: router,
render: h => h(require("./components/app/app.vue").default)
});
这是我的router.js
const routes = [
{ path: '/', component: require('./components/home/home.vue').default, name : "home" },
...
];