【发布时间】:2019-05-26 11:00:20
【问题描述】:
我正在寻找一个 nodejs 脚本,它将下面的 IN 替换为 OUT。
输入
/* api_start ====
app.use('/api',require('./api/api'));
app.use('/sms',require('./api/sms'));
==== api_end */
或
// app.use('/api',require('./api/api'));
// app.use('/sms',require('./api/sms'));
输出
app.use('/api',require('./api/api'));
app.use('/sms',require('./api/sms'));
基本上只是取消注释这些代码行。
或
只需将/* api_here */ 之类的注释替换为文件中的内容,该文件将包含上面OUT (api.js) 的中间位置。
更新
来自:https://stackoverflow.com/a/25072070/3066142
如果我可以编写正则表达式来识别该行,则以下内容将起作用。以下是我的尝试
// require:
var replace = require("replace");
// use:
replace({
regex: "//\s+app\.use\('/api',require\('\./api/api'\)\);", // string to be replaced
replacement: "test worked!!", // replacement string
paths: ['dist/server.js'], // path/to/your/file'
recursive: true,
silent: true,
});
【问题讨论】:
-
您可能想查看正则表达式。你可以在这里找到文档developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
-
您可以尝试使用strip-comments npm 包。
-
令人惊讶的是,cmets 是一个正则表达式,尽管基本上编程语言中的其他所有内容都不是正则表达式。
-
我不太了解正则表达式,无法自己编写。我认为用模板脚本之类的文件内容替换注释的解决方案是最好的解决方案
-
顺便说一句,如果您取消注释第一个示例,您最终会得到
api_start ==== app.use('/api',require('./api/api')); app.use('/sms',require('./api/sms')); ==== api_end而不是app.use('/api',require('./api/api')); app.use('/sms',require('./api/sms'));
标签: javascript node.js regex