esmodules icon indicating copy to clipboard operation
esmodules copied to clipboard

no-treeshakiing plugin seems not to work and there is treeshake option in rollup.js

Open bigwheel opened this issue 4 years ago • 0 comments

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"
  }
}

bigwheel avatar Dec 26 '21 10:12 bigwheel