我創建了一個名爲ctgen
的npm包,我需要引用該包中的文件夾。我應該硬編碼對該文件夾的引用嗎?我應該對我的node_modules文件夾進行硬編碼引用嗎?
例如src = './node_modules/ctgen/scaffold'
還是有一個預製功能,將爲我做這個?
對我的問題更清晰一點。我在我的包的以下功能:
var createFile = function (fileName, componentName, doc) {
// Tell the user what is happening
console.log(chalk.blue('\nCreating', fileName, '...'))
// Bring in the scaffold files (note this should point to the scaffold folder in node modules/ctgen)
var scaffold = './scaffold/' + fileName
fs.readFile(scaffold, 'utf8', function (err, data) {
if (err) return console.log(chalk.red(err))
var result = data.replace(/%cname%/g, componentName)
if (doc) {
var d = new Date()
result = result.replace(/%cfname%/g, doc.componentName)
result = result.replace(/%cdesc%/g, doc.componentDesc)
result = result.replace(/%cauthor%/g, doc.userName)
result = result.replace(/%cagithub%/g, doc.userGithub)
result = result.replace(/%creationdate%/g, d.getDate() + '/' + d.getMonth() + '/' + d.getFullYear())
}
fs.writeFile('./src/components/' + componentName + '/' + fileName, result, function (err) {
if (err) return console.log(chalk.red(err))
console.log(chalk.green(fileName, 'created!'))
})
})
}
它看起來一個叫腳手架下列文件夾中:
- view.php
- style.styl
- component.json
然後,它將文件拖入緩存中,執行查找並替換某些字符串,然後將輸出寫入fi在用戶項目中。
似乎雖然每當我嘗試引用'scaffold'
文件夾時,它都試圖在users項目文件夾中找到它,而不是在我的包文件夾中找到它。
我很猶豫是否通過編寫'/node_modules/ctgen/scaffold'
來引用腳手架文件夾,因爲這似乎是對我的錯誤做法。
你能說清楚你需要什麼,爲什麼?是否有一個原因,爲什麼ctgen模塊不能導出你所需要的?你如何確保文件將在那裏? – DrakaSAN
我已經添加了一些更多信息。對不起,我似乎讓它聽起來像它有一個外部的依賴關係,但情況並非如此。我想知道如何確保安裝時我的包可以看到它自己的文件夾結構。 –