y-free-loader
v2.0.1
Published
webpack js loader for Custom insert JS content
Downloads
2
Maintainers
Readme
#y-free-loader
loader介绍
能在文件中插入代码,或者删除代码。
如果你的项目在个别环境的中需要执行一些代码,但是又不想写在业务逻辑中,影响维护,也许这个loader能够帮助你。
或者 某些代码打包的你需要删除,也可以帮到你。
使用方式 如其他loader一样正常使用
支持query和options的方式传参
{
test: require.resolve(resolve('src/plugins/http')),
loader:`y-free-loader?data="console.log('y-free-loader')"`,
}
{
test: /\.(css)$/,
use:['css-loader','style-loader',{
loader:'y-free-loader',
options:{
data:'display:none'
}
}],
},
options参数
| key | value | default | | :-------- | -----------------: | :---------: | | data | 可执行的代码块 | | | type | insert/delete | insert | | startKey | loader执行的起始点 | y-loader-start | | endKey | loader执行的结束点 | y-loader-end |
实例1 insert 表达式
结果将被插入在标识之间
let free = 1;
// y-loader-start
// y-loader-end
{
test: require.resolve(resolve('src/index.js')),
loader:`y-free-loader?data="free = 99"`,
}
实例2 insert 函数
结果将被插入在标识之间
// y-loader-start
// y-loader-end
let free = `
function free(name){
console.log(name)
}
free()
`
{
test: require.resolve(resolve('src/index.js')),
loader:`y-free-loader?data=${free}`,
}
{
test: require.resolve(resolve('src/index.js')),
loader:`y-free-loader`,
options:{
data:free
}
}
实例3 insert 模块
结果将被插入在标识之间
// y-loader-start
// y-loader-end
let free = `
let md5 = require('md5')
...
`
{
test: require.resolve(resolve('src/index.js')),
loader:`y-free-loader?data=${free}`,
}
{
test: require.resolve(resolve('src/index.js')),
loader:`y-free-loader`,
options:{
data:free
}
}
实例3 delete
删除标识之间的内容
// y-loader-start
function delete(){
console.log('delete')
}
// y-loader-end
{
test: require.resolve(resolve('src/index.js')),
loader:`y-free-loader?type='delete'`,
}
{
test: require.resolve(resolve('src/index.js')),
loader:`y-free-loader`,
options:{
type:delete
}
}
实例4 自定义标识
自定义标识
// 开始
function delete(){
console.log('delete')
}
// 结束
{
test: require.resolve(resolve('src/index.js')),
loader:`y-free-loader?type=delet&startKey='开始'&endKey='结束'`,
}
{
test: require.resolve(resolve('src/index.js')),
loader:`y-free-loader`,
options:{
type:delete,
startKey'开始',
endKey:'结束'
}
}