在开发 NPM 包时,通常使用:
npm link
它允许<myPackage>
在开发中进行修改,而无需一直发布和取消发布!开发人员可以在本地进行任何更改并立即查看。
它通过以下方式安装到项目中:
npm link <myPackage>
很好,但是如果<myPackage>
有一个 require(path) 就会出现问题。
例如,它将使用 __dirname 的真实位置<myPackage>
,而不是符号链接的预期位置,它应该是项目的本地位置,就像常规的 node_module。
到目前为止我找到的解决方案,对于我的特殊情况来说效果很好:
module.exports = {
loadImage: function (filename) {
var img
if (typeof window !== 'undefined' && ({}).toString.call(window) === '[object Window]') {
try {
img = require('../../src/images/' + filename)
} catch (e) {
// Development only
img = require('./template/src/images/' + filename)
}
} else {
img = '/assets/images/' + filename
}
return img
}
}
但正如您可以想象的那样,这会导致浏览器中出现警告消息。
虽然我知道这个问题的原因,但理想情况下,我想抑制错误。