esmodules
esmodules copied to clipboard
no-treeshakiing plugin seems not to work and there is treeshake option in rollup.js
I tried no-treeshaking plugin with below codes but treeshaking ran. Next, I use official treeshake option and it succeeded. I think we can this option now.
My env
import { babel } from "@rollup/plugin-babel";
import { nodeResolve } from "@rollup/plugin-node-resolve";
const extensions = [".ts", ".js"];
const preventTreeShakingPlugin = () => {
return {
name: "no-treeshaking",
resolveId(id, importer) {
if (!importer) {
// let's not treeshake entry points, as we're not exporting anything in App Scripts
return { id, moduleSideEffects: "no-treeshake" };
}
return null;
},
};
};
export default {
input: "./src/main.ts",
output: {
dir: "build",
format: "cjs",
},
treeshake: false,
plugins: [
preventTreeShakingPlugin(),
nodeResolve({
extensions,
mainFields: ["jsnext:main", "main"],
}),
babel({ extensions, babelHelpers: "runtime" }),
],
};
{
"dependencies": {
"@types/google-apps-script": "^1.0.41"
},
"devDependencies": {
"@types/jest": "^27.0.3",
"jest": "^27.4.5",
"jest-mock-extended": "^2.0.4",
"ts-jest": "^27.1.2",
"@babel/core": "^7.12.10",
"@babel/plugin-transform-runtime": "^7.12.10",
"@babel/preset-env": "^7.12.11",
"@babel/preset-typescript": "^7.12.7",
"@google/clasp": "^2.3.0",
"@rollup/plugin-babel": "^5.2.2",
"@rollup/plugin-node-resolve": "^11.0.1",
"@types/google-apps-script": "^1.0.20",
"@types/node": "^12.19.9",
"rollup": "^2.35.1",
"typescript": "^4.1.3"
}
}