Я пишу пакет для Редактор Atom .
Может кто-нибудь помочь с ошибкой persmission denied
, которую я получаю при использовании метода fs-plus makeTree
вмой пакет при запуске на Mac?Нет ошибок в Windows.Я использую fs-plus, тот же модуль, который использует Atom в своем пакете tree-view (и tree-view работает на Mac).
UPD: добавление скриншота и некоторого кода:
Новая опция папки, показанная на рисунке, реализована с использованием того же модуля -FS-плюс, и это работает на Mac.Я использую тот же модуль и тот же метод (fs-plus.makeTree) для создания каталога, но моя реализация завершается неудачно с Permission denied error
.
Мой код:
import util from 'util';
import { sep } from 'path';
import fs from 'fs-plus';
const makeTreeAsync = util.promisify(fs.makeTree);
createTutorial(data) {
const { initialPath } = this;
const { fileName } = data;
const filePath = `${initialPath}${sep}${fileName}${sep}${fileName}.md`;
return makeTreeAsync(fileName)
.then(() => writeFileAsync(filePath, this.getContent(data)))
.then(() => filePath);
},
codeиз пакета в виде дерева:
path = require 'path'
fs = require 'fs-plus'
onConfirm: (newPath) ->
newPath = newPath.replace(/\s+$/, '') # Remove trailing whitespace
endsWithDirectorySeparator = newPath[newPath.length - 1] is path.sep
unless path.isAbsolute(newPath)
// some path preprocessing
return unless newPath
try
if fs.existsSync(newPath)
@showError("'#{newPath}' already exists.")
else if @isCreatingFile
// some code, we are not interested in as we 're creating directory
else
fs.makeTreeSync(newPath)
@emitter.emit('did-create-directory', newPath)
@cancel()
catch error
@showError("#{error.message}.")
Важное примечание: мой пакет устанавливается вручную (копируется в ~/<username>/.atom/packages
), а затем запускается npm i