최근 maimovie(en) 프로젝트에서 AWS EB 서버를 새로 구축하면서 노드 환경 버전을 16으로 설정하였다. 이에 따라, 버전 업그레이드 작업이 필요하다.
node-sass
, sass-loader
패키지가 문제인 듯 하여 노드 16버전과 호환되는 버전으로 변경 후 다시 시도 > 실패NodeJS | Supported node-sass version | Node Module |
---|---|---|
Node 19 | 8.0+ | 111 |
Node 18 | 8.0+ | 108 |
Node 17 | 7.0+, <8.0 | 102 |
Node 16 | 6.0+ | 93 |
Node 15 | 5.0+, <7.0 | 88 |
Node 14 | 4.14+ | 83 |
Node 13 | 4.13+, <5.0 | 79 |
Node 12 | 4.12+, <8.0 | 72 |
Node 11 | 4.10+, <5.0 | 67 |
Node 10 | 4.9+, <6.0 | 64 |
Node 8 | 4.5.3+, <5.0 | 57 |
Node <8 | <5.0 | <57 |
// 의존성 오류
Could not resolve dependency:
peerOptional node-sass@"^4.0.0" from sass-loader@8.0.2
// 와 함께 두가지 방법을 제안한다.
// 강제로 설치, 또는 의존성 무시하고 설치 위 명령어 뒤에 붙여주면 된다.
this command with --force, or --legacy-peer-deps
sass-loader
와 webpack
, webpack
과 vue
등을 다운그레이드를 통해 호환시켜야 한다고 함node-sass
를 안쓰기로 결정node-sass
삭제하고 sass
설치node-sass
사용하지 않으면서 나는 코드 에러 /deep/ > ::v-deep으로 변경a.
import { mapState } from 'vuex'
export default {
computed: {
...mapState(['count'])
},
render(h) {
return h('div', `Count: ${this.count}`)
}
}
b.
// store.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
count: 0
},
mutations: {
increment(state) {
state.count++
}
},
actions: {
increment(context) {
context.commit('increment')
}
},
getters: {
count: state => state.count
}
})
// component.vue
<template>
<div>
Count: {{ count }}
</div>
</template>
<script>
import store from './store'
export default {
computed: {
count() {
return store.getters.count
}
}
}
</script>
c.
"exports": {
".": {
"module": "./dist/vuex.esm.js",
"require": "./dist/vuex.common.js",
"import": "./dist/vuex.mjs"
},
"./*": "./*"
},