【发布时间】:2015-11-15 17:44:17
【问题描述】:
我想保持相对路径,并始终在其前面加上前导目录。
假设我有一个字符串hello。在您的package.main 中包含hello 以引用./hello.js 是完全有效的。但是,如果您使用 hello 并要求它,它将查找 hello node_module 而不是文件。如何使用路径为hello 加上./ 前缀?问题是 package.json main 可以有这些有效的选项。我并不是说这些都指向同一个文件。我是说hello.js和hello不能直接放入require。
../hello.js./hello.jshello.js../hello./hellohello
我如何清理所有这些路径以便它们与 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)
【问题讨论】:
标签: javascript node.js path require package.json