1.0.8 • Published 2 years ago

uni-insert-code-loader v1.0.8

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

uni-insert-code-loader

uni-app使用webpack打包时插入自定义代码的loader,用于解决小程序中组件无法全局挂载,需要在页面单独引用的问题。

安装

npm install uni-insert-code-loader --save-dev

使用方法

vue.config.js文件中添加loader
module.export = {
  module: {
    rules: [
      {
        test: /\.vue$/,
        use: [
          {
            loader: 'uni-insert-code-loader',
            options: {
              pagesPath: path.resolve(__dirname, './src/pages.json'),
              componentsConfigs: {
                customComponent: {
                  name: 'CustomComponent',
                  templateContent: '<CustomComponent />',
                  importContent: `import CustomComponent from '@/components/CustomComponent'`
                },
              },
              globalTemplateComponents: ['customComponent'],
            }
          }
        ]
      }
    ]
  }
}

属性配置

名称类型是否必填描述
pagesPathStringtruepages.json文件的路径,loader需要根据定义的路由进行注入操作。
componentsConfigsObjectfalse组件配置,在template中注入的内容都需要在这里进行配置。
styleConfigsObjectfalse样式配置,在style中注入的内容都需要在这里进行配置。
globalTemplateComponentsArrayfalse全局配置,要在template中插入的组件。
globalStylesArrayfalse全局配置,要在style中插入的样式。
pagesConfigsObjectfalse页面单独配置,优先级高于全局,如果配置了会忽略全局配置。
componentsConfigs

属性 | 名称 | 类型 | 是否必填 | 描述 | | :---------------: | :------: | :------: | :----------------------------------------------------------: | | name | String | false | 组件的名称,如果是单独引入的组件,需要组件名称在components中注册该组件,全局注册的组件不需要。 | | templateContent | String | false | 在template中注入的内容。 | | importContent | String | false | 在script中引用的内容。 |

以上的属性都不是非必填的,可以单独每一项。

如:

单独注入templateContent

componentsConfigs: {
    customComponent: {
        templateContent: `
            <view class="custom-view">
            	<text>页面单独引入</text>
            	<image class="custom-image" src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/92b1f16e05864315b3d396951d25aaee~tplv-k3u1fbpfcp-watermark.awebp" />
            </view>
        `
    }
}

单独注入importContent

componentsConfigs: {
    customComponent: {
        importContent: `import 'custom.css'`
    }
}
styleConfigs
名称类型是否必填描述
contentStringtruestyle中注入的内容

如:

styleConfigs: {
   customComponent: {
       content: `
           .custom-view {
           	width: 100%;
           	text-align: center;
           	.custom-image {
           		border-radius: 25px;
           	}
           }
       `
   }
}

globalTemplateComponents

注入的内容需要在componentsConfigs中定义

globalTemplateComponents: ['customComponent']

globalStyles

注入的内容需要在styleConfigs中定义

globalStyles: ['customComponent']

pagesConfigs

注入的路由需要在pages.json文件中定义,内容需要在componentsConfigsstyleConfigs中定义

pagesConfigs: {
    'pages/index/index': {
        templateComponents: ['customComponent'],
        styles: ['customComponent']
    }
}
1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago