src/dynamicImport.js
\n\n\nexport default function dynamicImport(path) {\n const parts = path.split(\'/\');\n // \xe5\x8e\xbb\xe6\x8e\x89\xe5\x90\x8e\xe7\xbc\x80.js\n const namespace = parts.pop().replace(/\\.\\w+$/, \'\');\n let mid = \'\';\n\n if (parts.length) {\n mid = `${parts.join(\'/\')}/`;\n }\n\n return new Promise((resolve, reject) => {\n console.log(mid, namespace)\n import(\n `@src/${mid}` + namespace + \'.js\'\n )\n .then(module => {\n resolve(module);\n })\n .catch(err => {\n reject(err);\n });\n });\n}\n\nRun Code Online (Sandbox Code Playgroud)\n\nsrc/index.js
\n\ndynamicImport(\'lib/test\').then(({ default: test}) => {\n test();\n})\n\nRun Code Online (Sandbox Code Playgroud)\n\nsrc/lib/test.js
\n\nexport default function test() {}\n\nRun Code Online (Sandbox Code Playgroud)\n\nrollup.config.js
\n\nconst rollup = require(\'rollup\');\nconst babel …Run Code Online (Sandbox Code Playgroud)