rollup 中的条件编译

geo*_*ter 5 rollup rollupjs

如何排除文件中代码的某些部分(不是文件本身,而是几行)编译到捆绑包中?在 C# 中它看起来像

#ifdef _DEBUG
...
#else
...
#endif
Run Code Online (Sandbox Code Playgroud)

js文件可以用rollup编译吗?

小智 1

rollup-插件-jscc

可能你需要rollup-plugin-jscc,但我不确定它在 2022 年的状态:(

在链接的 README.md 文件的使用部分中,您可以找到示例:

/*#if _DEBUG
import mylib from 'mylib-debug';
//#else */
import mylib from 'mylib'
//#endif

mylib.log('Starting $_APPNAME v$_VERSION...')
Run Code Online (Sandbox Code Playgroud)

@rollup/插件别名

另一个解决方案有点不同:

/*#if _DEBUG
import mylib from 'mylib-debug';
//#else */
import mylib from 'mylib'
//#endif

mylib.log('Starting $_APPNAME v$_VERSION...')
Run Code Online (Sandbox Code Playgroud)

你也可以使用官方的@rollup/plugin-alias来模拟import 'robot3/debug',但是这种方法需要空的模拟文件来替换,不太干净。

rollup.config.js

/*START.DEBUG_ONLY*/
import 'robot3/debug';
/*END.DEBUG_ONLY*/
import {...} from 'robot3';
Run Code Online (Sandbox Code Playgroud)