webpack resolve

2020. 1. 11. 07:28webpack

webpack resolve

webpack 모듈 번들러의 경우 어떤 위치에서 어떻게 로드해줄지가 중요하다. 

즉 

```
import test from test
//를 어떻게 로드해오는가에 따른 설정을 resolve에서 할 수 있다.
```

option 

  • alias
    모듈을 로드할 때 별칭을 사용하여 더 쉽게 로드할 수 있게 만든다. 

    webpack.config.js
alias:{
    Model: path.resolve(__dirname, 'src/model/')
  }

   js 파일에서 import 해올 때 

  import model from "src/model/User"처럼 사용하던 것을
  import  model from "Model/User" 와같이 사용할 수 있다.
  • modules
    설치된 라이브러리를 가져올 때 어느 폴더를 기준으로 가져올지 결정할 수 있다. 
  modules: ["node_modules"] //default 설치된 라이브러리들을 node_modules에서 불러오는 것이다.
  modules: [path.resolve(__dirname, "src"), "node_modules"]

 

실습

1. 설정 파일 설치

yarn init
yarn add --dev jquery webpack

 

2. index.html, index.js, webpack.config.js

index.html 
<html>
  <head>
    <title>Webpack Plugins</title>
  </head>
  <body>
    <script src="dist/bundle.js"></script>
  </body>
</html>
index.js 
import $ from "jquery";
console.log("loaded jQuery version is " + $.fn.jquery);
webpack.config.js
const webpack = require("webpack");
const path = require("path");
module.exports = {
  entry: "./app/index.js",
  output: {
    filename: "bundle.js",
    path: path.resolve(__dirname, "dist")
  	}
  }

 

3. alias 사용해보기

resolve: {
    alias: {
      Vendor: path.resolve(__dirname, "./app/vendor/")
    }
 }

alias를 추가하여 Vendor 키값을  둔다. 그럼 index.js에서 아래와 같이 사용할 수 있다. 

import $ from "./app/vendor/jquery-2.2.4.min.js"; -> import $ from "Vendor/jquery-2.2.4.min.js";
  console.log("loaded jQuery version is " + $.fn.jquery);

 

4. provide Plugin 사용해보기 

Provide plugin을 사용하여 jquery를 전역으로 사용할 수 있게 만들겠습니다.  webpack.config.js에 아래와  같은 코드를 추가합니다. webpack명령어를 실행하면

 plugins: [
    new webpack.ProvidePlugin({
      $: "jquery"
    })
  ]

위의 index.js를 아래와 같이 고칠 수 있습니다. import로 불러오는 것 없이 $바로 사용할 수 있습니다.  

console.log("loaded jQuery version is " + $.fn.jquery);

'webpack' 카테고리의 다른 글

webpack middleware  (0) 2020.01.14
webpack - devServer  (0) 2020.01.14
webpack plugin  (0) 2020.01.11
webpack loader  (0) 2020.01.11
webpack entry와 ouput  (0) 2020.01.11