repo git:https://github.com/darkiron/SSR-vue-template branche:https://github.com/darkiron/SSR-vue-template/tree/sass(sass)
我尝试在webpack的sass-loader的includePaths中更新vue-loader for extract sass:但是当我编译时获取此错误:
TypeError:(0,_ app.createApp)不是es5_server_entry.js上的函数:441:39 at new Promise()at module.exports ../ src / entry-server.js.exports.default(src / entry- server.js:4:8)/Users/vincent/Desktop/SSR-vue-template/node_modules/vue-server-renderer/build.js:8375:43 at new Promise()at / Users / vincent / Desktop /在Object.renderToString上的SSR-vue-template / node_modules / vue-server-renderer / build.js:8372:14(/Users/vincent/Desktop/SSR-vue-template/node_modules/vue-server-renderer/build.js :8564:9)在app.get(/Users/vincent/Desktop/SSR-vue-template/server.js:64:11)在Layer.handle [as handle_request](/ Users / vincent / Desktop / SSR-vue) -template / node_modules / express / lib / router / layer.js:95:5)at next(/Users/vincent/Desktop/SSR-vue-template/node_modules/express/lib/router/route.js:137:13 )
我的入口服务器只导入我的app.js:
import { createApp } from './app'
export default context => {
return new Promise(
(resolve, reject) => {
const { app, router, store } = createApp()
router.push(context.url)
router.onError((err) => {
console.log(err)
})
router.onReady(() => {
const matchedComponents = router.getMatchedComponents()
if(!matchedComponents.length){
return reject({ code: 404})
}
Promise.all(matchedComponents.map(
component => {
if(component.asyncData) {
return component.asyncData({
store,
route: router.currentRoute
})
}
}
)).then(() => {
context.state = store.state
resolve(app)
}).catch(reject)
}, (reject) => { console.log(reject)})
}
)
}
和我的app.js:
import Vue from 'vue'
import App from './App.vue'
import { createRouter } from './router'
import { createStore } from './store'
import { sync } from 'vuex-router-sync'
import metaMixin from './Utils/meta-mixin'
import filters from './Utils/filters'
Vue.mixin(metaMixin)
Vue.use(filters)
export function createApp () {
const router = createRouter()
const store = createStore()
// synchroniser pour que l'état de la route soit disponible en tant que donnée du store
sync(store, router)
const app = new Vue({
router,
store,
render: h => h(App)
})
return { app, router, store }
}
哪里有问题,我不明白,我会疯了
1 回答
webpack生成的代码:
似乎webpack搜索app.view而不是app.js