WebPack 创建一个 library
发布时间:2023-05-06 13:34:35 所属栏目:教程 来源:
导读:除了打包应用程序代码,webpack 还可以用于打包 JavaScript library。以下指南适用于希望流水线化(streamline)打包策略的 library 作者。
创建一个 library
假设你正在编写一个名为 webpack-numbers 的小的 li
创建一个 library
假设你正在编写一个名为 webpack-numbers 的小的 li
除了打包应用程序代码,webpack 还可以用于打包 JavaScript library。以下指南适用于希望流水线化(streamline)打包策略的 library 作者。 创建一个 library 假设你正在编写一个名为 webpack-numbers 的小的 library,可以将数字 1 到 5 转换为文本表示,反之亦然,例如将 2 转换为 'two'。 基本的项目结构可能如下所示: project + |- webpack.config.js + |- package.json + |- /src + |- index.js + |- ref.json 初始化 npm,安装 webpack 和 lodash: npm init -y npm install --save-dev webpack lodash src/ref.json [{ "num": 1, "word": "One" }, { "num": 2, "word": "Two" }, { "num": 3, "word": "Three" }, { "num": 4, "word": "Four" }, { "num": 5, "word": "Five" }, { "num": 0, "word": "Zero" }] src/index.js import _ from 'lodash'; import numRef from './ref.json'; export function numToWord(num) { return _.reduce(numRef, (accum, ref) => { return ref.num === num ? ref.word : accum; }, ''); }; export function wordToNum(word) { return _.reduce(numRef, (accum, ref) => { return ref.word === word && word.toLowerCase() ? ref.num : accum; }, -1); }; 该 library 的使用方式如下: // ES2015 模块引入 import * as webpackNumbers from 'webpack-numbers'; // Commonjs 模块引入 var webpackNumbers = require('webpack-numbers'); // ... // ES2015 和 Commonjs 模块调用 webpackNumbers.wordToNum('Two'); // ... // AMD 模块引入 require(['webpackNumbers'], function ( webpackNumbers) { // ... // AMD 模块调用 webpackNumbers.wordToNum('Two'); // ... }); 用户还可以通过 script 标签来加载和使用此 library: <!doctype html> <html> ... <script src="https://unpkg.com/webpack-numbers"></script> <script> // ... // 全局变量 webpackNumbers.wordToNum('Five') // window 对象中的属性 window.webpackNumbers.wordToNum('Five') // ... </script> </html> 注意,我们还可以通过以下配置方式,将 library 暴露: global 对象中的属性,用于 Node.js。 this 对象中的属性。 完整的 library 配置和相关代码请参阅 webpack library 示例。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |