반응형

1. 프로젝트 생성

   npm init -y

 

2. 관련 package 설치

   npm i -D snowpack svelte @snowpack/plugin-svelte ( 템플릿 구성용 )

   npm i -D @snowpack/plugin-optimize ( html, js 난독화 및 최적화 )

   npm i -D @snowpack/plugin-babel  ( 바벨 )

   npm i -D @snowpack/plugin-sass  ( sass )

   npm i -D bootstrap@next ( 부트스트랩 )

   Svelt for VS Code 패키지 설치 ( 코드 하이라이트 )

 

3. package.json 파일 script 추가

"scripts": {
   "dev": "snowpack dev",
   "build": "snowpack build"
}

 

4. snowpack.config.js 파일 생성

module.exports = {
    mount: {
        public: '/',	// root 폴더
        src: '/dist'	// build된 결과 파일 위치
    },
    plugins: [
        '@snowpack/plugin-svelte',
        '@snowpack/plugin-optimize',  
        '@snowpack/plugin-babel',	//  ( 바벨 )
        '@snowpack/plugin-sass' 	//  ( Sass )
    ],
    alias: {
        '~':'./src'	// 경로 별칭
    },
    devOptions: {
        //port: 8080,
        open: 'none'	// 서버 새로 시작 시 브라우저 열기기능 막음
    }
}

5. index.html 파일에 스크립트 파일 경로 생성

<script type="module" src="/dist/main.js"></script>

6. App.svelte 파일 생성

<script>
    let name = 'hello Svelte!'
</script>

<h1>{name}</h1>

<style lang="scss">
	$color: red;
    h1 {
    	color: $color;
    }
</style>

 

 

7. main.js 파일 생성

import App from './App.svelte'

const app = new App({
	target: document.body
})

export default app

 

Build 최적화

8. optimize 패키지 설치

9. Babel 패키지 설치

10. Sass 패키지 설치

 

11. eslint 경고 제거 

반응형
반응형

1. 프로젝트 생성

   npm init -y

2. 관련 플러그인 설치

   npm i -D webpack webpack-cli webpack-dev-server@next

   npm i -D html-webpack-plugin ( html을 포함하여 build할 수 있도록 도와주는 플러그인 )

   npm i -D copy-webpack-plugin ( static 폴더에 있는 이미지 파일을 인식시킬 수 있는 플러그인 )

   npm i -D css-loader style-loader ( css 파일을 main.js 에서 인식시켜주는 파일 )

   npm i -D sass-loader sass ( sass 파일 읽고, 해석해주는 플러그인 )

   npm i -D postcss autoprefixer postcss-loader ( 스타일 후처리를 도와주는 package, autoprefixer: 공급업체 접두사 생성, webpack loader )

   npm i -D @babel/core @babel/preset-env @babel/plugin-transform-runtime ( 최신 js문법 인식 )

   npm i -D babel-loader ( 바벨 로더 설치 )

 

3. package.json 스크립트 추가

"scripts":{
  "dev": "webpack-dev-server --mode development",
  "build": "webpack --mode production"
},

4. 프로젝트 구성

   /node_modules

   /package-lock.json

   /package.json

   /webpack.config.js   

   /.babelrc.js

   /.gitignore

   /.postcssrc.js

 

   /index.html

   /js/main.js

   /scss/main.scss

   /static/fabicon.ico

       ㄴ/images/logo.png

   

5. ./index.html 파일 생성 및 (css reset cdn 적용, h1 태그 및 img 태그 링크 작성)  

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reset-css@5.0.1/reset.min.css">
</head>
<body>
  <h1>Hello Webpack!!</h1>
  <img src="./images/logo.png" alt="seaofcalm" />
</body>
</html>

 

5. ./js/main.js 생성

//import '../scss/main.scss'  // 추후 추가. 최초 작동 테스트에는 불필요

console.log('Webpack!')

7. ./webpack.config.js 생성

const path = require('path')
const HtmlPlugin = require('html-webpack-plugin')
const CopyPlugin = require('copy-webpack-plugin')

module.exports = {
	// 파일을 읽어들이기 시작하는 진입점 설정
    entry: './js/main.js',	// 엔트리 파일 인식. 번들링 결과물에 포함시킴
    output: {
    	// 현재는 path와 filename이 기본값과 동일하므로 생략 가능
    	// path: path.resolve(__dirname, 'dist'),	//절대경로 필요, 폴더명
        // filename: 'main.js',
        clean: true	// 새로 build 시 기존 필요없는 파일/폴더 삭제
    },
    
   module: {
        rules: [
            {
                test: /\.s?css$/,	// .css 또는 scss로 끝나는 파일 인식
                use: [
                    'style-loader',	// html에 삽입해주는 역할
                    'css-loader',	// 먼저 해석됨. js에서 css에서 인식하도록 해석
                    'postcss-loader',	// 공급업체 접두사 적용
                    'sass-loader'	// 가장 먼저 해석됨. js에서 scss에서 인식하도록 해석
                ]
            },
            {
                test:/\.js$/,
                use: [
                    'babel-loader'  //바벨이 적용될 수 있도록 설정
                ]
            }        
        ]
    },
    
    plugins:[
    	new HtmlPlugin({
        	template: './index.html'	// 번들링 결과물에 html을 포함시킴
        }),
        new CopyPlugin({
        	patterns: [
            	{ from: 'static' }		// 번들링 결과물에 스태틱 파일을 포함시킴
            ]
        })
    ],
    
    devServer:{
    	host: 'localhost'	// 서버 호스팅 주소
    }
}

8. logo.png는 static/images 폴더에, fabicon.ico는 static 폴더에 넣어준다.

<body>
      <h1>Hellow Webpack!!</h1>
      <img src="./images/logo.png" alt="seaofcalm" />
</body>

 

9.  ./scss/main.scss파일에서 display: flex; 조건으로 확인. index.html파일에서 main.css 파일링크는 삭제

$color--black:#000;
$color--white: #fff;

body {
    background-color: $color--black;
    h1 {
        color: $color--white;
        font-size: 40px;
        display: flex;
    }
}

10. main.js에 ./css/main.css 반영

main.js

import '../scss/main.scss'

console.log('Webpack!')

 

11. Autoprefixer 공급업체 접두사 추가 => autoprefixer 및 관련 패키지 설치 (2. 참조)

 

12. package.json 에 브라우저 추가

"browserslist": [
	"> 1%",
	"last 2 versions"
]

13. .postcssrc.js 작성

module.exports = {
  plugins: [
      require('autoprefixer')
  ]
}

14. 바벨 적용( .babelrc.js 파일 생성 )

module.exports = {
    presets: ['@babel/preset-env'], // 한번에 명시
    plugins: [
        ['@babel/plugin-transform-runtime'] //비동기 처리
    ]
}

15. 깃 적용( ,gitignore 파일 생성)

.cache
.DS_Store
node_modules
dist
반응형
반응형

owl carousel 한 화면에 여러개의 이미지를 나타내며 돌아가는 기능을 합니다.

 

1. 다운로드

owlcarousel2.github.io/OwlCarousel2에서 압축 파일을 다운로드 합니다. 필요한 파일은 dist\assets폴더 내부의 css파일과 src\js폴더에 있는 js 파일입니다. 그리고 jquery파일도 필요하니 다운받아놓습니다.

 

 

Home | Owl Carousel | 2.3.4

Modules and Plugins Owl Carousel supports plugin modular structure. Therefore, you can detach plugins that you won't use on your project or create new ones that fit your needs

owlcarousel2.github.io

 

2. 샘플 예제

css, js를 폴더별로 정리하고, index.html을 아래와 같이 작성합니다.

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Owl Carousel</title>
    <link rel="stylesheet" href="css/owl.carousel.css" />
    <link rel="stylesheet" href="css/owl.theme.default.css" />
</head>

<body>
    <div id="wrapper">
        <div class="owl-carousel owl-theme">
            <div class="item">
                <img src="images/puppy-1.jpg">
            </div>
            <div class="item">
                <img src="images/puppy-2.jpg">
            </div>
            <div class="item">
                <img src="images/puppy-3.jpg">
            </div>
            <div class="item">
                <img src="images/kitten-1.jpg">
            </div>
            <div class="item">
                <img src="images/kitten-2.jpg">
            </div>
            <div class="item">
                <img src="images/kitten-3.jpg">
            </div>
        </div>
    </div>

    <script src="js/jquery-3.5.1.min.js"></script>
    <script src="js/owl.carousel.js"></script>
    <script src="js/owl.autoplay.js"></script>
    <script src="js/owl.navigation.js"></script>
    <script>
        $(function () {
            $('.owl-carousel').owlCarousel({
                items: 3,
                margin: 10,
                loop: true,
                nav: true,
                navText: ['이전', '다음'],
                autoplay: true,
                autoplayTimeout: 3000,
                autoplayHoverPause: true
            });
        });
    </script>
</body>

</html>

<script>설명

items: 3 -> 한 화면에 3개의 이미지씩 보여줌
margin: 10 ->항목 사이의 간격을 10
loop: true -> 무한 반복
nav: true ->내비게이션 버튼 추가
navText: ['이전', '다음'] ->내비게이션 위에 '이전/다음' 버튼 추가
autoplay: true -> 자동 스크롤 실행
autoplayTimeout: 3000 -> 자동 스크롤 시간 간격
autoplayHoverPause: true -> 마우스 포인터를 올리면 자동 스크롤 일시 정지

 

3. 그림 다운로드

unsplash 사이트에서 적당한 이미지 다운로드합니다. 사이즈 조절도 균일하게 조절할 겸 Figma에서 불러와 jpg로 export하여 이미지를 마련했습니다. 모은 이미지들을 /images 폴더에 저장합니다.

 

4. 결과

반응형
반응형

 

1. bxSlider 프러그인 다운로드

bxslider.com에서 다운로드에서 다운로드 가능합니다. 링크로 연결하는 방법이 기본으로 나와있는데, The other ways에 직접 다운로드하여 사용할 수 있도록 다운로드 경로도 제공합니다. 그리고 jquery도 필요하니, 다운받아놓습니다.

 

 

jQuery Content Slider | Responsive jQuery Slider | bxSlider

Coded with ♥ by

bxslider.com

 

2. 복사하기

압축을 풀면 dist 폴더 안에 있는 css파일과 js파일을 원하는 폴더로 옮겨서 사용합니다. 주의할 점은 images 폴더를 css 파일들을 옮겨놓은 폴더에 함께 복사해 놓아야 한다는 점입니다. 이 이미지는 스타일시트에서 사용하는 이미지들입니다.

 

 

3. 샘플 코드

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Carousel using bxSlider.js</title>
    <link rel="stylesheet" href="css/jquery.bxslider.css">
    <style>
        #wrapper {
            width: 600px;
            margin: 0 auto;
        }
    </style>
</head>


<body>
    <div id="wrapper">
        <div class="bxslider">
            <div>
                <img src="images/Things-1.jpg" title="slider 1">
            </div>
            <div>
                <img src="images/Things-2.jpg" title="slider 2">
            </div>
            <div>
                <img src="images/Things-3.jpg" title="slider 3">
            </div>
            <div>
                <img src="images/Things-4.jpg" title="slider 4">
            </div>
        </div>
    </div>

    <script src="js/jquery-3.5.1.min.js"></script>
    <script src="js/jquery.bxslider.js"></script>
    <script>
        $(function () {
            $('.bxslider').bxSlider({
                slideWidth: 600,
                caption: true,
                auto: true,
                autoControl: true,
                stopAutoOnclick: true,
            });
        });
    </script>
</body>

</html>

<script> 코드 설명:

  slideWidth: 600 -> 슬라이드의 폭은 600,

  caption: true -> 마우스 오버 시 그림 캡션 표시 true,

  auto -> 자동재생,

  autoControl -> 컨트롤 버튼(재생/정지) 표시

  stopautoOnclick: true -> 클릭해서 자동 실행 멈출 수 있도록 지정

 

추가로, 중앙정렬 옵션이 없기 때문에 style 정의에서 margin: 0 auto 옵션이 필요함.

4. 결과

반응형
반응형

ourcodeworld.com/articles/read/434/top-5-best-free-jquery-and-javascript-dynamic-gantt-charts-for-web-applications

반응형
반응형

안녕하세요,

 

리액트를 한번 배워볼까 해서 동영상을 따라 시도해보고 있는데, 처음 MongoDB 연결하는 부분부터 막히네요.

예전에는 사용자만 생성해도 test Database가 만들어졌던 것 같은데, 최근 방법이 바뀌었나봅니다. 방법은..

 

1. clusters->collections 메뉴로 이동하여 create database 를 클릭해줍니다.

2. Database이름: test, Database Collections: devices 으로 생성해줍니다.

3. 그리고 소스를 실행해서 확인합니다.

const express = require('express')
const app = express()
const port = 5000


const mongoose = require('mongoose')
mongoose.connect('mongodb+srv://john:asdf1234@cluster0.juisc.mongodb.net/test?retryWrites=true&w=majority',{
    useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: false
}).then(() => console.log('MongoDB Connected...'))
.catch(err => console.log(err))



app.get('/', (req, res) => res.send('Hello World!'))

app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`))

 

반응형
반응형

 

1. electron-builder 설치 

npm install electron-builder --dev-save

 

2. package.json파일 수정

"scripts" 부분에 "deploy"를 추가하고,

"build" 부분을 추가합니다.

{
  "name": "electron-quick-start",
  "version": "1.0.0",
  "description": "A minimal Electron application",
  "main": "main.js",
  "scripts": {
    "start": "electron .",
    "deploy":"electron-builder --windows nsis:ia32"
  },
  "repository": "https://github.com/electron/electron-quick-start",
  "keywords": [
    "Electron",
    "quick",
    "start",
    "tutorial",
    "demo"
  ],
  "author": "GitHub",
  "license": "CC0-1.0",
  "devDependencies": {
    "electron": "^9.0.5",
    "electron-builder": "^22.7.0",
    "electron-packager": "^15.0.0"
  },
  "build":{
    "productName": "HelloElectron",
    "appId": "com.electron.hello",
    "asar": true,
    "protocols": {
      "name": "helloElectron",
      "schemes": [
        "helloelectron"
      ]
    },
    "win": {
      "target": [
        "zip",
        "nsis"
      ],
      "icon": "./resources/installer/Icon.ico"
    },
    "nsis": {
      "oneClick": false,
      "allowToChangeInstallationDirectory": true
    },
    "directories": {
      "buildResources": "./resources/installer/",
      "output": "./dist/",
      "app": "."
    }
  }
}

3. 배포파일 생성

npm run deploy

 

4. 결과

하위의 dist 폴더에 설치파일이 생성되며, 설치 후 생성되는 패키지가 win-ia32-unpacked에 함께 생성됩니다. 해당 폴더로 가 보면 실행파일이 함께 생성된 것을 확인할 수 있습니다.

반응형
반응형

1. Electron-packager 설치

npm install electron-packager --save-dev

2. package.json파일 수정

- "scripts" 내부의 "build" 부분을 추가해 줍니다. phonebook이라고 되어있는 부분이 실행앱 이름이 됩니다.

{
  "name": "electron-quick-start",
  "version": "1.0.0",
  "description": "A minimal Electron application",
  "main": "main.js",
  "scripts": {
    "start": "electron .",
    "build": "electron-packager . phonebook"
  },
  "repository": "https://github.com/electron/electron-quick-start",
  "keywords": [
    "Electron",
    "quick",
    "start",
    "tutorial",
    "demo"
  ],
  "author": "GitHub",
  "license": "CC0-1.0",
  "devDependencies": {
    "electron": "^9.0.5",
    "electron-packager": "^15.0.0"
  }
}

 

3. 빌드 실행

npm run build

 

4. 현재 프로젝트 내부에 위에서 입력한 앱 이름과 현재 시스템명이 조합된 폴더가 하나 생성되고,

그 내부에 실행파일이 위치하게 됩니다. 배포할 때에는 이 폴더를 통째로 Zip파일로 만들어 배포하거나, windows installer를 이용해 배포프로그램을 만듭니다. 

반응형

+ Recent posts