我正在编写快速服务器,自从我将节点升级到7.1.x版本后,我收到了以下警告:
(node:23488)DeprecationWarning:很快就会使用不带
new
的缓冲区 停止工作。使用new Buffer()
,或者最好Buffer.from()
, 而是Buffer.allocUnsafe()
或Buffer.alloc()
。
我不记得在任何地方使用Buffer
。我只知道我在应用程序中初始化了log-file-rotator
模块,这可能是唯一与缓冲区有关的模块。
const fileStream = require('file-stream-rotator')
const LOG_PATH = path.join(__dirname, '..', 'logs')
const PORT = process.env.npm_package_config_port || 4000
let logFileStream = fileStream.getStream({
date_format: 'YYYYMMDD',
filename: path.join(LOG_PATH, 'access-%DATE%.log'),
frequency: 'daily',
verbose: false
})
但是,查看their source repo,我没有注意到Buffer
来电的任何陈述。
为什么会出错,以及如何解决?
答案 0 :(得分:2)
我在OSX上有一个有限的grep。我使用HomeBrew安装了ack
:
brew install ack
然后运行以下搜索Buffer(...)
之前没有new
的实例:
ack --js '(?<!new) Buffer\(' --noignore-dir=node_modules/
您也可以输出到文件:
ack --js '(?<!new) Buffer\(' --noignore-dir=node_modules/ > ~/Desktop/buffer.txt
然后检查可能触发该警告的Buffer的使用,例如:
var a = Buffer(something)
如果您有包含问题的软件包列表,那么您可以通过以下方式找到相应的软件包:
npm ls
这将打印出包树,您可以在其中找到可能需要更新的主要包或提交的问题。