Skip to content

Latest commit

 

History

History

mina-entry-webpack-plugin

mina-entry-webpack-plugin

Automaticly generates entries-list from mina files for Webpack

npm npm license PRs Welcome

Installation

npm i --save-dev @tinajs/mina-entry-webpack-plugin

Usage

/**
 * webpack.config.js
 */
const webpack = require('webpack')
const MinaEntryPlugin = require('@tinajs/mina-entry-webpack-plugin')
const resolve = require('path').resolve

// implement yourself if necessary
const CustomFileTypeConfigReader = require('./custom-file-type-config-loader')

module.exports = {
  context: resolve('src'),
  entry: './app.mina',
  output: {
    path: resolve('dist'),
    filename: '[name]',
    publicPath: '/',
  },
  module: {
    rules: [
      {
        test: /\.mina$/,
        use: {
          loader: '@tinajs/mina-loader',
        },
      },
    ],
  },
  plugins: [
    new MinaEntryPlugin({
      map: (entry) => ['es6-promise/dist/es6-promise.auto.js', entry],
      rules: [{
        {
          pattern: '**/*.custom-file-type',
          reader: CustomFileTypeConfigReader,
        },
      }],
    }),
  ],
}

For the best particle, you might also be interested in mina-webpack.

Options

Name Default Description
map (e) => e Mapper function for each entry. Useful for adding polyfill scripts.
rules [] Rules of custom config readers. See https://github.com/tinajs/mina-webpack/blob/master/packages/mina-loader/test/mina-entry-plugin.js#L204-L264 for examples
rules[].pattern '' Pattern, using glob expressions
rules[].reader ConfigReader Custom config reader, should inherit from ConfigReader and implement its getConfig interface
extensions ... The extension names of each block for the separation (classical) files.
extensions.template ['.wxml'] The extension name of the <template> block
extensions.style ['.wxss'] The extension name of the <style> block
extensions.script ['.js'] The extension name of the <script> block
extensions.config ['.json'] The extension name of the <config> block
extensions.resolve ['.js', '.wxml', '.json', '.wxss'] The resolving order of extensions for the separation (classical) files.
minaLoaderOptions {} Options of mina-loader for classical components, usually you can just leave it by default.

Example

License

Apache-2.0 © yelo, 2017 - present