가져오기 경로 내부의 @는 무엇을 의미하나?
나는 새로운 vue.js 프로젝트를 시작하고 있어서 vue-cli 도구를 사용하여 새로운 웹 팩 프로젝트를 준비했다.vue init webpack
).
생성된 파일을 살펴보다가 다음과 같은 가져오기가 눈에 띄었다.src/router/index.js
파일:
import Vue from 'vue'
import Router from 'vue-router'
import Hello from '@/components/Hello' // <- this one is what my qusestion is about
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'Hello',
component: Hello
}
]
})
at 표지판을 본 적이 없다.@
) 전에 어떤 경로에.나는 그것이 상대적인 경로를 허용한다고 의심한다(아마도?) 하지만 나는 그것이 진정으로 무엇을 하는지 확실히 알고 싶었다.
온라인으로 검색해 보았지만 설명(prob는 "at sign"을 검색하거나 문자 문자를 사용하기 때문에 찾을 수 없었다.@
검색 기준으로는 도움이 되지 않는다.)
는 무엇인가?@
이 경로에서 실행(문서화 링크가 환상적일 것임)하고 이것이 es6인가?웹팩 같은 거?부로더 같은 거?
갱신하다
펠릭스 클링이 나에게 이 같은 질문에 대한 또 다른 중복 스택 오버플로 질문/답변을 알려줘서 고마워.
다른 스택 오버플로우 포스트에 대한 코멘트가 이 질문에 대한 정확한 답은 아니지만(나의 경우 Babel 플러그인이 아니었다) 그것이 무엇인지 찾는 정확한 방향을 내게 알려주었다.
Vue-cli가 크랭킹하는 비계에서는 기본 웹 팩 구성의 일부가 .vue 파일에 대한 별칭을 설정한다.
이는 src 파일에서 상대적인 경로를 제공한다는 점과 해당 파일의 요구사항을 없앤다는 점에서 모두 타당하다..vue
(일반적으로 필요한) 가져오기 경로의 끝 부분에
도와줘서 고마워!
이것은 WebPack 구성 옵션으로 수행되며 Vue에만 국한되지 않는다.
Vue Webpack 템플릿에서 Webpack이 대체되도록 구성됨@/
경로:
const path = require('path');
...
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
...
'@': path.resolve('src'),
}
},
...
별칭은 다음과 같이 사용된다.
import '@/<path inside src folder>';
tsconfig에서도 변수를 생성할 수 있다는 점도 염두에 두십시오.
"paths": {
"@components": ["src/components"],
"@scss": ["src/styles/scss"],
"@img": ["src/assests/images"],
"@": ["src"],
}
이는 명명 규칙 목적에 활용할 수 있다.
import { componentHeader } from '@components/header';
나는 다음과 같은 조합으로 끝냈다.
import HelloWorld from '@/components/HelloWorld'
=>
import HelloWorld from 'src/components/HelloWorld'
IDE는 uri에 대한 경고를 중지하지만, 이로 인해 "build\webpack.base.conf.js"에서 컴파일할 때 uri가 유효하지 않게 된다.
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'src': resolve('src'),
}
},
빙구!
resolutionsrc') 나를 위한 일은 없고 path.path.propertiessrc')는 효과가 있다.
resolve: {
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': path.resolve('src')
},
extensions: ['*', '.js', '.vue', '.json']
},
웹 팩을 추가해 보십시오. mix.webpackConfig 참조 래러벨 혼합.
mix.webpackConfig({
resolve: {
alias: {
'@imgSrc': path.resolve('resources/assets/img')
}
}
});
그리고 vue 사용으로.
<img src="@imgSrc/logo.png" />
뭔가 변한 게 틀림없어.여기에 주어진 답은 더 이상 정확하지 않다.09장의 이 프로젝트는 가져오기 문에서 @ 기호를 사용하지만 webpack.config.js 파일에 경로 결정문이 없다.
let service = process.VUE_CLI_SERVICE
if (!service || process.env.VUE_CLI_API_MODE) {
const Service = require('./lib/Service')
service = new Service(process.env.VUE_CLI_CONTEXT || process.cwd())
service.init(process.env.VUE_CLI_MODE || process.env.NODE_ENV)
}
module.exports = service.resolveWebpackConfig()
참조URL: https://stackoverflow.com/questions/42749973/what-does-the-mean-inside-an-import-path
'programing' 카테고리의 다른 글
부트스트랩-뷰:b-table에 열로 표시된 b-form-checkbox의 여러 배열로 Role Permissions 구현.작동하지 않음 (0) | 2022.03.24 |
---|---|
Python에서 XPath를 사용하는 방법? (0) | 2022.03.24 |
(null이 없는) 두 스트림을 병합하여 쌍에 조건을 적용하는 방법 (0) | 2022.03.23 |
NoneType을 python에서 "테스트"하는 방법? (0) | 2022.03.23 |
각도 주입식 장식기 - 인수가 0인 것으로 예상되지만 1개임 (0) | 2022.03.23 |