发布一个npm包(webpack loader)

发布一个npm包,webpack loader: reverse-color-loader,实现颜色反转。

初始化项目 mkdir reverse-color-loader cd ./reverse-color-loader npm init

新建 index.js,手写一个 webpack loader 实现颜色反转。webpack loader 开发文档查看 编写一个 loader

module.exports = function (source) { var newSource = source // #000000 .replace(/#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([^0-9a-fA-F]{1})/g, function ($0, $1, $2, $3, $4) { return '#' + n16_reverse_n16($1) + n16_reverse_n16($2) + n16_reverse_n16($3) + $4; }) // #000 .replace(/#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([^0-9a-fA-F]{1})/g, function ($0, $1, $2, $3, $4) { return '#' + n16_reverse_n16($1 + $1) + n16_reverse_n16($2 + $2) + n16_reverse_n16($3 + $3) + $4; }) // rbga?(0, 0, 0, 0?) .replace(/rgba?\s*\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,?\s*(\d*(\.\d*)?)?\s*\)/g, function ($0, $1, $2, $3, $4) { return `rgba(${n10_reverse_n10($1)}, ${n10_reverse_n10($2)}, ${n10_reverse_n10($3)}, ${$4 || 1})`; }) return newSource; }; function n16_reverse_n16(n) { var reverseN = (255 - parseInt('0x' + n)).toString(16); return reverseN[1] ? reverseN : '0' + reverseN; } function n10_reverse_n10(n) { return (255 - n); }

目录很简单

发布一个npm包(webpack loader)

申请npm账号 地址 https://www.npmjs.com/login

登陆

npm login

发布一个npm包(webpack loader)

发布 npm publish

发布一个npm包(webpack loader)

403没权限,需要先去邮箱验证,邮件里的验证地址 需要在刚刚登陆账号的浏览器打开 才能完成验证。

然后再次发布

发布一个npm包(webpack loader)

打开npm账号查看package

发布一个npm包(webpack loader)

发布成功

npm包地址:reverse-color-loader

看看效果

在项目中引入刚刚发布的loader看看效果

npm install --save-dev reverse-color-loader

webpack中配置使用

{ test: /\.(css|js)$/, use: 'reverse-color-loader' },

页面效果

发布一个npm包(webpack loader)

生效,绿色 被反转为 紫色。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zydfsf.html