NPM de carga del complemento de escritura VUE

Prefacio

Este artículo está preparado para no escribir, porque escribí el complemento de uniapp para cargar npm y luego agregué el componente de barra de pasos de VUE escrito a mano. Este artículo menciona que este componente de barra de pasos se cargará en el almacén de npm más tarde, y luego lo usará La forma de cargar el complemento uniapp es intentar cargar el complemento VUE. La carga se puede cargar, pero el complemento no se puede instalar cuando npm está instalado en el proyecto VUE. Así que lo pienso de nuevo. Oh, resulta que la carga del complemento uniapp y la carga del complemento VUE todavía no son lo mismo, ¡así que hay este artículo!

Secarse

1. Cree un proyecto de VUE vacío. Al crear un proyecto de VUE
antes, debe usar el siguiente comando

vue init webpack you-project

Pero no somos un proyecto de desarrollo, sino un complemento, por lo que no es necesario crear un entorno VUE completo, solo use el siguiente comando para crear

vue init webpack-simple you-project

La diferencia entre los dos
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
básicamente no necesita cambiar ninguna información, mi complemento en esta barra de pasos necesita usar la dependencia sass, ¡así que el entorno se puede instalar aquí! ¡La estructura completa del proyecto es la siguiente!
Inserte la descripción de la imagen aquí
2. Inicie el proyecto,
primero ejecute el siguiente comando

npm install

La instalación aquí lleva mucho tiempo, no use el espejo cnpm Taobao, porque si cambia al espejo Taobao aquí, debe reemplazarlo cuando presione el complemento npm más tarde. Después de instalar la dependencia del entorno, inicie el proyecto

npm run dev

Inserte la descripción de la imagen aquí
¡Empezado con éxito!

3. Elimina algunos archivos innecesarios.
Este paso se puede hacer o no. Lo principal es permitir que los colegas que usan nuestro complemento no se obsesionen tanto con la dependencia del complemento. ¡La comparación de las dos imágenes comprenderá claramente el significado de este paso!
Este es un complemento
Inserte la descripción de la imagen aquí
que no se ha eliminado. Este es un complemento que se ha eliminado.
Inserte la descripción de la imagen aquí
No se preocupe por esta dist. Hablaremos de esto más adelante.
Inserte la descripción de la imagen aquí
Elimine el directorio de activos. Este directorio es para almacenar recursos. Si no hay recursos estáticos en el complemento, puede eliminarlo. ¡No es necesario mover los demás!

4. Escribir complementos
Si la cantidad de proyectos de complementos es relativamente grande, puede crear directorios separados. Mi complemento es relativamente simple, por lo que no quiero construir un estante tan grande. La estructura es la siguiente :
Inserte la descripción de la imagen aquí
simple-step-bar.vue, este es el código del componente de barras del paso, index.js es el archivo que expone nuestros componentes al mundo exterior. Lo que debe tenerse en cuenta aquí es instalar. Los complementos de Vue deben proporcionar una instalación de método público, que se llamará cuando use el complemento, es decir, Vue.use (su complemento). De esta manera, todos sus componentes se inyectan globalmente en Vue.

5. Modifique el elemento de configuración webpack.config.js
Inserte la descripción de la imagen aquí

entry: './src/plugin/index.js',//指定插件的对外暴露文件
  output: {
    
    
    path: path.resolve(__dirname, './dist'),
    publicPath: '/dist/',//build后项目生成目录
    filename: 'simple-step-bar.js',//build后的文件名
    library: 'simple-step-bar', // 指定的就是你使用require时的模块名
    libraryTarget: 'umd', // 指定输出格式
    umdNamedDefine: true // 会对 UMD 的构建过程中的 AMD 模块进行命名。否则就使用匿名的 define
  },
  • biblioteca: especifica el nombre del módulo cuando usa require
  • libraryTarget: para admitir múltiples escenarios de uso, debemos elegir un formato de empaquetado adecuado. Los formatos de empaquetado comunes son CMD, AMD, UMD. CMD solo se puede ejecutar en el entorno Node, AMD solo se puede ejecutar en el lado del navegador y UMD admite dos entornos de ejecución al mismo tiempo. Evidentemente, deberíamos elegir el formato UMD.
  • umdNamedDefine: nombre del módulo AMD en el proceso de construcción de UMD. De lo contrario, use la definición anónima.
    A veces queremos desarrollar una biblioteca, como lodash, subrayado y otras bibliotecas de herramientas. Estas bibliotecas pueden usarse en commonjs y amd o introducirse en un script.

En este momento, necesitamos usar library y libraryTarget, solo necesitamos usar ES6 para escribir el código, compilarlo en un UMD universal y entregarlo a webpack

6. Compile el complemento

npm run build

Inserte la descripción de la imagen aquí

7. Modifique el archivo package.json para
Inserte la descripción de la imagen aquí
liberar el código abierto, por lo que debe cambiar este campo a falso
"privado": falso,

Esto se refiere a la ruta
"principal" que recuperará al importar simple-step-bar : "dist / simple-step-bar.js",
注意这里如果不指定这个文件会导致引用组件是找不到这个组件

8. Escriba el archivo README.md.
Si desea que el usuario adivine el complemento que escribió, no es necesario que realice este paso. Si no lo desea, escriba el archivo README.md en detalle cómo utilizar el complemento!
Inserte la descripción de la imagen aquí
Después de que el complemento cargue npm, este archivo guiará al usuario después de que otros ingresen al complemento. Como se muestra abajo
Inserte la descripción de la imagen aquí

9. Inicie sesión en npm localmente

npm login

Inserte la descripción de la imagen aquí
Si no tiene una cuenta de npm, vaya al sitio web oficial para registrar una y habrá terminado en el sitio web oficial de npm . Preste atención al problema de la verificación del correo electrónico; de lo contrario, no podrá cargar complementos. El complemento de uniapp que carga npm se describe en este artículo

10. Plugin push npm

npm publish

Inserte la descripción de la imagen aquí

Una vez que la inserción es exitosa, la consola es como arriba, y luego la notificación se enviará al buzón vinculado, ¡no es necesario verificar!
Inserte la descripción de la imagen aquí
¡Entonces el backend del almacén de npm cambiará la cantidad de complementos!
Inserte la descripción de la imagen aquí
Este es el complemento de barra de pasos simple que presionamos. No se mostrará de inmediato. Solo cambia el número de complementos de almacén. ¡Solo se mostrará después de unos 2 minutos!
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Luego, cargue el complemento VUE en npm aquí y estará completo.

11.npm descarga de prueba del complemento
Inserte la descripción de la imagen aquí

npm i super-step-bar

Inserte la descripción de la imagen aquí
Una vez que la instalación sea exitosa, habrá complementos actuales en node_modules

12. El proyecto utiliza un complemento de barra de pasos simple
Inserte la descripción de la imagen aquí

import simpleStepBar from 'simple-step-bar'

Vue.use(simpleStepBar);

Use el
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
código de prueba en la interfaz vue

<template>
  <div id="app">
    <div class="description-div">默认</div>
    <simple-step-bar></simple-step-bar>

    <div class="description-div">rem单位</div>
    <div>
      <button @click="less(1)">后退</button>
      <button @click="plus(1)">前进</button>
    </div>
    <simple-step-bar
      :totalWidth='80' :totalHeight='3' :unit='"rem"'
      :stepList="stepList1" :currentStep="currentStep1"
      :itemWidth='40' :lienWidth='0.1'
    ></simple-step-bar>

    <div class="description-div">px单位</div>
    <div>
      <button @click="less(2)">后退</button>
      <button @click="plus(2)">前进</button>
    </div>
    <simple-step-bar
      :totalWidth='720' :totalHeight='48' :unit='"px"'
       :stepList="stepList2" :currentStep="currentStep2"
       :itemWidth='240' :lienWidth='2'
    ></simple-step-bar>

    <div class="description-div">个性化样式</div>
    <div>
      <button @click="less(3)">后退</button>
      <button @click="plus(3)">前进</button>
    </div>
    <simple-step-bar
      :totalWidth='80' :totalHeight='3'
      :unit='"rem"' :stepBackground='"#FFFFFF"'
      :stepList="stepList3" :currentStep="currentStep3"
      :itemWidth='20' :lienWidth='0.1' :lienColor='"red"'
      :processingFontColor='"#ffffff"' :processingFontColorN='"#FF0005"'
      :processingBackground='"#ef5e41"' :stepBorderColor='"#FF0005"'
    ></simple-step-bar>
  </div>
</template>

<script>
  export default {
    
    
    name: 'app',
    data() {
    
    
      return {
    
    
        stepList1:["步骤a","步骤b"],
        stepList2:["步骤1","步骤2","步骤3"],
        stepList3:["步骤一","步骤二","步骤三","步骤四"],
        currentStep1:1,
        currentStep2:2,
        currentStep3:3,
      }
    },
    methods:{
    
    
      plus(type){
    
    
        switch (type) {
    
    
          case 1:
            this.currentStep1++;
            break;
          case 2:
            this.currentStep2++;
            break;
          case 3:
            this.currentStep3++;
            break;
        }
      },
      less(type){
    
    
        switch (type) {
    
    
          case 1:
            this.currentStep1--;
            break;
          case 2:
            this.currentStep2--;
            break;
          case 3:
            this.currentStep3--;
            break;
        }
      }
    }
  }
</script>

<style lang="scss">
  #app {
    
    
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    font-family: 'Avenir', Helvetica, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-align: center;
    color: #2c3e50;
    margin-top: 60px;
  }

  .description-div{
    
    
    margin-top: 2rem;
    height: 2rem;
  }
</style>

Con respecto al uso detallado del componente , escribir a mano el componente de barra de pasos de VUE , mal, solo quería escribir una función de barra de pasos, pero estaba escrito como un complemento, ¡y ahora que se ha servido el npm de montaje de código abierto!

npm :simple-step-bar
gitee :simple-step-bar

otro

El nombre del complemento subido por npm no puede ser el mismo que el de los complementos de otras personas. La versión no se puede duplicar
, por lo que debe modificar la versión después de cada cambio.

npm version 1.1.0

Cada vez que carga una nueva versión, debe reconstruirla antes de poder enviarla.

npm run build 

Si ya tiene un complemento en su almacén, puede usar el nombre eliminado solo 24 horas después de eliminarlo.

npm unpublish guitest@1.0.1 //指定版本号

Además, se debe principalmente a consideraciones de seguridad. Después del evento de retiro del NPM de Azerbaiyán, npm anunció una nueva versión de las reglas, de la siguiente manera

  • Se permite eliminar los paquetes cuya versión de actualización sea inferior a 24 horas;
  • El encargado de mantenimiento de npm debe ser contactado para la eliminación de paquetes durante 24 horas;
  • Si participan los mantenedores de npm, npm comprobará si hay otros paquetes que dependan del paquete y, de ser así, no se permitirá que se elimine;
  • Si se eliminan todas las versiones de un paquete, npm cargará un paquete de marcador de posición vacío para evitar que los usuarios posteriores citen accidentalmente un reemplazo malicioso.

Supongo que te gusta

Origin blog.csdn.net/CSDN877425287/article/details/113254804
Recomendado
Clasificación