Ошибка типа [ERR_INVALID_CALLBACK]: обратный вызов должен быть функцией - PullRequest
0 голосов
/ 20 мая 2018

Я хотел создать скрипт для добавления нового правила в приложение angular webpack, как показано ниже. Иногда код выполняется частично, а иногда - erorr.

const fs = require('fs');
const commonCliConfig = 'node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/webpack-configs/common.js';
const pug_rule = "\n{ test: /\\.pug$/, loader: ['raw-loader' , 'pug-html-loader' ]},";
var configText = "";
fs.readFile(commonCliConfig, function(err, data) {
    if (err) throw err;
    configText = data.toString();
    if (configText.indexOf(pug_rule) > -1) { return; }
    const position = configText.indexOf('rules: [') + 8;
    const output = [configText.slice(0, position), pug_rule, configText.slice(position)].join('');
    const file = fs.openSync(commonCliConfig, 'r+');
    fs.writeFile(file, output);
    fs.close(file);
});


Terminal node pug-rule.js
fs.js:148
    throw new ERR_INVALID_CALLBACK();
    ^

TypeError [ERR_INVALID_CALLBACK]: Callback must be a function
    at makeCallback (fs.js:148:11)
    at Object.fs.close (fs.js:520:20)
    at path/pug-rule.js:18:5
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:422:3)

1 Ответ

0 голосов
/ 17 июля 2018

fs.writeFile(...) требует, чтобы третий (или четвертый) параметр, который является функцией обратного вызова, вызывался по завершении операции.Вы должны либо предоставить функцию обратного вызова, либо использовать fs.writeFileSync(...)

См. node fs docs для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...