Current collected state Current
Observed since 20 Oct, 19:25 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
> 需求: 实现大型正整数相加,打包出开发环境用的js和生产环境用的.min.js。支持amd/cmj/es6/script标签引用等多种方式。 ### 1. 编写加法代码 ``` export default function add(a, b) { let i = a.length - 1; let j = b.length - 1; let carry = 0; let result = ""; while (i >= 0 || j >= 0) { let x = 0;
需求: 实现大型正整数相加,打包出开发环境用的js和生产环境用的.min.js。支持amd/cmj/es6/script标签引用等多种方式。
export default function add(a, b) {
let i = a.length - 1;
let j = b.length - 1;
let carry = 0;
let result = "";
while (i >= 0 || j >= 0) {
let x = 0;
let y = 0;
if (i >= 0) {
x = a[i] - "0"; // 字符转为数字
i--;
}
if (j >= 0) {
y = b[j] - "0";
j--;
}
let sum = x + y + carry;
if (sum >= 10) {
carry = 1;
sum -= 10;
} else {
carry = 0;
}
result = sum + result;
}
if (carry) {
result = carry + result;
}
return result;
}
.js和.min.jsconst path = require('path')
module.exports = {
entry: {
qingfengmyAdd: "./src/index.js",
"qingfengmyAdd.min": "./src/index.js"
},
output:{
path: path.resolve(__dirname, 'dist'),
filename:'[name].js'
},
};
.min.js的代码mode:none,
optimization: {
minimize: true,
minimizer: [new TerserPlugin({ include: /\.min\.js$/ })]
}
安装依赖
yarn add terser-webpack-plugin -D
terser-webpack-plugin,内容同UglifyjsWebpackPlugin,不过这个支持es6的代码压缩,uglifyjs最新版本也支持es6的压缩
// index.js
if (process.env.NODE_ENV === "production") {
module.exports = require("./dist/qingfengmyAdd.min.js");
} else {
module.exports = require("./dist/qingfengmyAdd.js");
}
output: {
filename: "[name].js",
library: "qingfengmyAdd", // 全局变量是什么?window.qingfengmyAdd
libraryExport: "default", // 默认值
libraryTarget: "umd" // 都支持
}
npm login
...
npm publish
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 1.0.0Registry latest | 21 Feb 2020 | 3 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 19:25 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:ee7ba1da5df7722b580d8bbd700d64ea9756e1ae73b373a84cbbdc079117a400