92 строки
2.7 KiB
JavaScript
92 строки
2.7 KiB
JavaScript
import nodeResolve from "rollup-plugin-node-resolve";
|
|
import { uglify } from "rollup-plugin-uglify";
|
|
import replace from "rollup-plugin-replace";
|
|
import commonjs from "rollup-plugin-commonjs";
|
|
import shim from "rollup-plugin-shim";
|
|
//import visualizer from "rollup-plugin-visualizer";
|
|
|
|
const version = require("./package.json").version;
|
|
const banner = [
|
|
"/*!",
|
|
` * Azure Storage SDK for JavaScript - Queue, ${version}`,
|
|
" * Copyright (c) Microsoft and contributors. All rights reserved.",
|
|
" */"
|
|
].join("\n");
|
|
|
|
const nodeRollupConfigFactory = () => {
|
|
return {
|
|
external: ["@azure/ms-rest-js", "crypto", "fs", "os"],
|
|
input: "dist-esm/lib/index.js",
|
|
output: {
|
|
file: "dist/index.js",
|
|
format: "cjs",
|
|
sourcemap: true
|
|
},
|
|
plugins: [nodeResolve(), uglify()]
|
|
};
|
|
};
|
|
|
|
const browserRollupConfigFactory = isProduction => {
|
|
const browserRollupConfig = {
|
|
input: "dist-esm/lib/index.browser.js",
|
|
output: {
|
|
file: "browser/azure-storage.queue.js",
|
|
banner: banner,
|
|
format: "umd",
|
|
name: "azqueue",
|
|
sourcemap: true
|
|
},
|
|
plugins: [
|
|
replace({
|
|
delimiters: ["", ""],
|
|
values: {
|
|
// replace dynamic checks with if (false) since this is for
|
|
// browser only. Rollup's dead code elimination will remove
|
|
// any code guarded by if (isNode) { ... }
|
|
"if (isNode)": "if (false)"
|
|
}
|
|
}),
|
|
// os is not used by the browser bundle, so just shim it
|
|
shim({
|
|
os: `
|
|
export const type = 1;
|
|
export const release = 1;
|
|
`
|
|
}),
|
|
nodeResolve({
|
|
module: true,
|
|
browser: true,
|
|
preferBuiltins: false
|
|
}),
|
|
commonjs({
|
|
namedExports: {
|
|
assert: ["ok", "deepEqual", "equal", "fail", "deepStrictEqual"]
|
|
}
|
|
})
|
|
]
|
|
};
|
|
|
|
if (isProduction) {
|
|
browserRollupConfig.output.file = "browser/azure-storage.queue.min.js";
|
|
browserRollupConfig.plugins.push(
|
|
uglify({
|
|
output: {
|
|
preamble: banner
|
|
}
|
|
})
|
|
// Comment visualizer because it only works on Node.js 8+; Uncomment it to get bundle analysis report
|
|
// visualizer({
|
|
// filename: "./statistics.html",
|
|
// sourcemap: true
|
|
// })
|
|
);
|
|
}
|
|
|
|
return browserRollupConfig;
|
|
};
|
|
|
|
export default [
|
|
browserRollupConfigFactory(false),
|
|
browserRollupConfigFactory(true),
|
|
nodeRollupConfigFactory()
|
|
]; |