我开始使用Browserify,我正在尝试根据名为components.coffee
的配置文件来要求一个文件数组。我将React与CoffeeScript结合使用,但我怀疑它与问题本身有关。
index.cjsx
path = require 'path'
componentList = require '../commons/components'
components = componentList.map (component) ->
console.log path.relative(__dirname, component)
console.log '../commons/button/button.doc.js'
console.log '../commons/button/button.doc.js' is path.relative(__dirname, component)
console.log require(path.relative(__dirname, component))
console.log require '../commons/button/button.doc.js'
require(path.relative(__dirname, component))
公地/ components.coffee
module.exports = [
"../commons/button/button.doc.js"
]
删除行console.log require '../commons/button/button.doc.js'
时的输出:
如果我不要求使用硬编码路径的文件,则会失败。我不解释为什么硬编码路径和动态路径是平等的。
我猜这是与Browserify有关的东西,可能是一个缓存问题,当通过硬编码字符串需要模块时解决了这个问题。但我真的不知道。
与此同时,我将使用一种解决方法,但我想了解这里发生了什么! :)
我的解决方案是改变我的设计。
components.coffee返回一个字符串数组,它现在返回一个已加载文件的数组。公地/ components.coffee
module.exports = [
require "../commons/button/button.doc.js"
]
然后,在我的 index.cjsx 中,我只需加载它:
components = require '../commons/components'