vue 로 플러그 인 을 봉인 하고 npm 에 발표 하 는 방법 절차

6950 단어 vue플러그 인npm
1.vue 기반 국가 지역 번호 목록
vue-flag-list 는 대부분의 국가의 지역 번 호 를 포함 하고 있 습 니 다.오른쪽 삼각형 전개 목록 을 클릭 하면 국가 지역 번 호 를 선택 할 수 있 습 니 다.목록 에 지역 번호 가 없 으 면 스스로 지역 번 호 를 입력 할 수 있 습 니 다.

글로벌 지역 번호 목록
1.1 구성 요소 초기 화
vue-cli 를 사용 하여 구성 요 소 를 초기 화 합 니 다.필요 하지 않 은 것 이 많 지만 이것 에 익숙 하기 때문에 이 단계 로 합 니 다.

vue init webpack vue-flag-list
cd vue-flag-list
cnpm install 
npm run dev
1.2 자신의 수요 에 따라 구체 적 인 기능 을 실현 하고 나의 주요 기능 은 vue-flag-list.vue 구성 요소 에 적 혀 있다.

<template>
 <div id="flag">
 ...
 </div>
</template>

<script>
 export default {
  name: 'vue-flag-list',
  ...
 }
</script>

<style scoped>
 ...
</style>
기능 작성 후 package.json 등 프로필 을 수정 하여 포장 발 표를 준비 합 니 다.
1.3 index.js 추가

import flagComponent from './Vue-Flag-List.vue'

const VueFlagList = {
 install: function (Vue) {
 if (typeof window !== 'undefined' && window.Vue) {
  Vue = window.Vue
 }
 Vue.component('VueFlagList', flagComponent)
 }
}

export default VueFlagList

1.4 프로필 수정
1.4.1 package.json

{
 "name": "vue-flag-list",
 "version": "1.0.0",
 "description": "A vue plugin for entering and selecting area code",
 "author": "guimin",
 //          ,  private false
 "private": false,
 //   main  ,     ,           import XX from '  '    ,                 
 "main": "dist/vue-flag-list.min.js", 
 "scripts": {
 "dev": "node build/dev-server.js",
 "start": "node build/dev-server.js",
 "build": "node build/build.js"
 },
 //            
 "repository": {
 "type": "git",
 "url": "git+https://github.com/linmoer/vue-flag-list.git"
 },
 //       ,        
 "files": [
 "dist",
 "src"
 ],
 //      
 "keywords": [
 "vue",
 "flag",
 "code",
 "flag code"
 ],
 "license": "MIT", //    
 //      url
 "homepage": "https://github.com/linmoer/vue-flag-list#readme",
 "dependencies": {
 "vue": "^2.3.3"
 },
 "devDependencies": {
 ...
 },
 "engines": {...},
 "browserslist": [...]
}

1.4.2.gitignore 파일
dist 폴 더 를 사용 해 야 하기 때문에.gitignore 파일 에서 dist/를 제거 합 니 다.
1.4.3 webpack.prod.conf.js 파일
다양한 사용 장면 을 지원 하기 위해 서 는 적절 한 포장 형식 을 선택해 야 합 니 다.흔히 볼 수 있 는 패키지 포맷 은 CMD,AMD,UMD 로 CMD 는 노드 환경 에서 만,AMD 는 브 라 우 저 에서 만,UMD 는 두 가지 실행 환경 을 동시에 지원 한다.UMD 형식 을 선택해 야 한 다 는 것 은 분명 하 다.웹 팩 에서 지정 한 출력 형식의 설정 항목 은 output.library Target 입 니 다.지원 하 는 형식 은 다음 과 같 습 니 다.
  • "var"-하나의 변수 로 출력:var Library=xxx(default);
  • "this"-this 의 속성 으로 출력:this["Library"]=xxx;
  • "commonjs"-exports 의 속성 으로 출력:exports["Library"]=xxx;
  • "commonjs 2"-module.exports 형식 으로 출력:module.exports=xxx;
  • "amd"-AMD 형식 으로 출력 합 니 다.
  • "umd"-AMD,CommonJS 2 와 전역 속성 으로 출력 합 니 다.
  • 다음은 webpack.prod.conf.js 에서 output 설정 의 예제 입 니 다.
    
     output: {
     path: path.resolve(__dirname, '../dist'),
     publicPath: '',
     filename: 'vue-flag-list.min.js',
     library: 'VueFlagList',
     libraryTarget: 'umd',
     umdNamedDefine: true
     },
    
    Vue 는 구성 요소 라 이브 러 리 의 외부 의존 입 니 다.구성 요소 라 이브 러 리 의 사용 자 는 스스로 Vue 를 가 져 옵 니 다.포장 할 때 Vue 를 구성 요소 라 이브 러 리 에 포장 해 서 는 안 됩 니 다.단,포 장 된 구성 요소 라 이브 러 리 를태그 로 직접 도입 하면 정상적으로 실행 되 지 않 고 vue 가 정의 되 지 않 았 음 을 알 수 있 습 니 다.
    구성 요 소 를탭 으로 사용 할 때 도탭 을 사용 하여 Vue 를 가 져 옵 니 다.Vue 가 져 온 변 수 는'window.Vue'가 아니 라'window.vue'이기 때문에 vue 가 정의 하지 않 은 오류 가 발생 할 수 있 습 니 다.
    그래서 우 리 는 웹 pack.prod.conf.js 에 externals 를 설정 해 야 합 니 다.다음 과 같 습 니 다.
    
    externals: {
     vue: {
      root: 'Vue',
      commonjs: 'vue',
      commonjs2: 'vue',
      amd: 'vue'
     }
     },
    
    또한 css 를 파일 로 포장 하기 위해 서 는 webpack.prod.conf.js 의 plugins 옵션 이 필요 합 니 다.
    
    new ExtractTextPlugin({
      filename: utils.assetsPath('css/[name].[contenthash].css')
     }),
    으로 변경
    
    new ExtractTextPlugin({
      filename: 'vue-flag-list.min.css'
     }),
    입구 파일 수정
    
    entry: {
     app: './src/index.js'
     },
    1.5 디 렉 터 리 구 조 를 정리 합 니 다.제 디 렉 터 리 구 조 는 다음 과 같 습 니 다.
    
    - vue-flag-list
     + build
     + dist
     - src
     + img
     index.js
     Vue-Flag-List.vue
     ...
    2.npm 로 가방 발표
    정식 가방 을 보 내기 전에 현지에서 먼저 가방 을 만 든 다음 에 문제 가 있 는 지 테스트 한 다음 에 문제 가 없 으 면 npm 에 발표 할 수 있 습 니 다.
    2.1 로 컬 로 포장 하여 사용
    
    npm build
    npm pack
    npm pack 이후 현재 디 렉 터 리 에서 vue-flag-list-1.0.0.tgz 파일 을 생 성 합 니 다.
    새 vue 항목 을 열 고 현재 경로 에서 실행 합 니 다('경로'는 파일 이 있 는 위 치 를 표시 합 니 다)
    
    cnpm install 路径/vue-flag-list-1.0.0.tgz
    새 항목 의 입구 파일(main.js)에 도입
    
    import VueFlagList from 'vue-flag-list'
    import 'vue-flag-list/dist/vue-flag-list.min.css'
    
    Vue.use(VueFlagList)
    
    구성 요소 에서 사용
    
    <flagCode height="30" width="120" @getCode="getCode"></flagCode>
    
    methos: {
     getCode(code) {
      console.log(code)
     }
    }
    
    2.2 npm 에 발표
    1.npm官网 에 npm 계 정 을 등록 합 니 다.
    2.보 낼 항목 루트 디 렉 터 리 로 전환 하고 npm 계 정 에 로그 인하 여 사용자 이름,비밀번호,메 일 을 입력 합 니 다.
    
    npm login
    3.마지막 으로 npm publish 를 실행 하면 됩 니 다.
    
    # lin@lin-Pro in ~/www/vue-flag-list on git:master $ npm publish
    # lin@lin-Pro in ~/www/vue-flag-list on git:master $ + [email protected]
    후기
    오랫동안 고생 한 끝 에vue-flag-list플러그 인의 초기 형 태 를 발 표 했 습 니 다.이것 은 아주 간단 한 플러그 인 입 니 다.앞으로 계속 유지 하고 더 많은 실 용적 인 기능 을 추가 할 것 입 니 다.
  • npm unpublish--force:발표 패 키 지 를 제거 합 니 다(지정 한 버 전의 패 키 지 를 제거 할 수도 있 습 니 다)
  • npm logout:로그 인 사용자
  • 이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기