5-1 Library的打包
1.创建一个新的文件夹library
2.打开命令行工具,然后cd library/
3.运行命令 npm init -y 初始化library项目, 把库文件变成 node_modules 模块, 从而生成一个package.json项目描述文件
{
"name": "library-my-self", // 注意这个名字是不能重复的
"version": "1.0.0",
"description": "",
"main": "./dist/library.js", // 使用打包生成的dist文件下的library.js
"scripts": {
"build": "webpack"
},
"keywords": [],
"author": "Dell",
"license": "ISC" // 或者使用MIT (MIT为完全开源的协议)
}
4.在项目library里创建几个文件src/math.js, src/string.js, src/index.js
其中math.js内容为:
export function add(a, b) {
return a + b;
}
export function minus(a, b) {
return a - b;
}
export function multiply(a, b) {
return a * b;
}
export function division(a, b) {
return a / b;
}
string.js的内容为:
import _ from 'lodash';
export function join(a, b) {
return a + ' ' + b;
}
export function useLodash(a, b) {
return _.join([a, b], '--')
}
index.js的内容为:
import * as math from './math';
import * as string from './string';
export default { math, string }
5.用命令行打开项目library,运行命令 npm install webpack webpack-cli lodash --save
6.在项目的根目录下手动创建一个文件webpack.config.js,其内容为:
const path = require('path');
module.exports = {
mode: 'production',
entry: './src/index.js',
// externals: ["lodash"], // 打包的时候,如果遇到lodash这个库,就不要打包到代码里面去,让用户自己在业务代码里自己安装引用,避免重复打包
// externals: "lodash", // 这么写也是可以的
// 或者这么写
// externals: {
// lodash: {
// commonjs: 'lodash'
// }
// }
// 另外常用的一种写法
externals: {
lodash: 'lodash'
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'library.js',
library: 'library', // 添加一个库的变量名字叫library;目的是:让用户可以使用<script src='library.js'></script>这种方式使用。如:library.math()
libraryTarget: 'umd', // umd为通用的意思, 用户可以使用ES6的语法:import library from 'library'; 使用commonJs的语法:const library = require('library'); 或者使用AMD的语法使用:require(['library'], function () {});中的任意一种引入方式都是可以的, 如果umd改为了window,就表示在window上加了一个属性window.library.math()通过这种方式来使用
}
}
执行命令npm run build生成一个dist/library.js供别人使用
8.登录npm的官方网站: www.npmjs.com 申请一个账号登录进去
9.在项目library的根目录下,打开命令行工具,运行命令npm adduser回车,添加用户名和密码成功之后
10.运行npm publish命令发布到npm 的仓库上面去
11.别人怎么使用呢,别人在自己的项目里面执行npm install library-my-self就可以使用了