1.主文件 babelParse.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| const { getOptions } = require('loader-utils') const { validate } = require('schema-utils') const { transform} = require('@babel/core') const { promisify } = require('util')
const transformAsync = promisify(transform)
const babelSchema = require('./schemas/babelSchema.js')
|
2.校验文件 babelSchema.js
1 2 3 4 5 6 7 8 9 10
| module.exports = { type: 'object', properties: { presets: { type: 'array' } }, addtionalProperty: true }
|
3.webpack配置文件 webpack.config.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| ... module: { rules: [ { test: /\.js$/, use: { loader: 'babelParse.js', options: { presets: ['@babel/preset-env'] } } } ] }, resolveLoader: { modules: ['node_modules', path.resolve(__dirname, 'loaders/')] }, ...
|