推荐答案
// www.javascriptcn.com code example
import replace from '@rollup/plugin-replace';
export default {
input: 'src/main.js',
output: {
file: 'bundle.js',
format: 'cjs'
},
plugins: [
replace({
'process.env.NODE_ENV': JSON.stringify('production'),
__buildDate__: () => JSON.stringify(new Date()),
__buildVersion__: '1.0.0'
})
]
};本题详细解读
1. 插件介绍
@rollup/plugin-replace 是一个 Rollup 插件,用于在打包过程中替换代码中的字符串。它通常用于替换环境变量、版本号、构建时间等。
2. 插件配置
在 Rollup 配置文件中,通过 replace 函数来配置插件。replace 函数接受一个对象作为参数,对象的键值对表示需要替换的内容。
- 键:表示需要替换的字符串或正则表达式。
- 值:表示替换后的内容。可以是字符串、函数或对象。
3. 示例解析
在示例中,我们配置了三个替换项:
process.env.NODE_ENV:替换为'production',通常用于区分开发环境和生产环境。__buildDate__:替换为当前日期的 JSON 字符串,通过函数动态生成。__buildVersion__:替换为固定的版本号'1.0.0'。
4. 使用场景
- 环境变量替换:在代码中动态替换环境变量,如
process.env.NODE_ENV。 - 版本号替换:在代码中动态替换版本号,如
__buildVersion__。 - 构建时间替换:在代码中动态替换构建时间,如
__buildDate__。
5. 注意事项
- 字符串替换:如果替换的内容是字符串,确保使用
JSON.stringify来避免语法错误。 - 函数替换:如果替换的内容是函数,函数会在打包时执行,返回的值将作为替换内容。
- 正则表达式:可以使用正则表达式来匹配更复杂的字符串模式。