我想保持路径是相对的,并且总是在它前面加上前导目录。
假设我有一个字符串hello
。hello
在您package.main
的参考中完全有效./hello.js
。但是,如果您接受hello
并要求它,它将查找hello
node_module 而不是文件。如何hello
使用./
路径前缀?问题是 package.jsonmain
可以有这些有效的选项。我并不是说这些都指向同一个文件。我是这么说的,hello.js
不能hello
直接放进去require
。
../hello.js
./hello.js
hello.js
../hello
./hello
hello
如何清理所有这些路径以便它们与 require 一起工作?
path.join
摆脱领先的路径,所以这是行不通的。path.resolve
另一方面,确实可以清理所有这些路径以供 require 使用,但它使其成为绝对路径。
预期行为:
../hello.js
-> 相同./hello.js
-> 相同hello.js
->./hello.js
../hello
-> 相同./hello
-> 相同hello
->./hello
我应该只创建一个正则表达式来查看路径吗?我如何确保它可以跨平台工作?
var pkg = require('./package.json')
// var mainPackage = cleanMain(pkg.main)
// var main = require(mainPackage)