package.json“ main”与require一起使用"/>
Cleaning package.json“ main”与require一起使用
我想保持路径相对,并始终在开头目录前添加路径。
假设我有一个字符串hello
。将hello
中的package.main
引用为./hello.js
是完全有效的。但是,如果需要hello
并要求它,它将查找hello
node_module,而不是文件。如何使用路径在hello
之前加./
前缀?问题是package.json main
可以具有这些有效选项。我并不是说这些都指向相同的文件。我是说hello.js
和hello
无法直接放入require
。
../hello.js
./hello.js
hello.js
../hello
./hello
hello
我如何清理所有这些路径,以便它们与require一起使用?
path.join
摆脱了领先的道路,所以行不通。另一方面,path.resolve
确实可以清理所有这些路径以与require一起使用,但是它变成了绝对路径。
预期的行为:
- [
../hello.js
-> same]] - [
./hello.js
-> same]] hello.js
->./hello.js
- [
../hello
-> same]] - [
./hello
-> same]] hello
->./hello
我应该只创建一个正则表达式来查看路径吗?如何确保它可以跨平台运行?
var pkg = require('./package.json') // var mainPackage = cleanMain(pkg.main) // var main = require(mainPackage)
我想保持路径相对,并始终在开头目录前添加路径。假设我有一个字符串你好。在package.main中引用。/ ...
即使在Windows上,节点中的要求路径也仅使用正斜杠
/
,这样就消除了复杂性。除此之外,它在node_modules
中查找与在路径中查找之间的区别在于它是以.
还是/
开头。 (Docs.)clean函数可以是一个简单的正则表达式测试,如下所示:回答如下:function clean(s) { if (!/^[\.\/]/.test(s)) { s = './' + s; } return s; }
即使在Windows上,节点中的要求路径也仅使用正斜杠
/
,这样就消除了复杂性。除此之外,它在node_modules
中查找与在路径中查找之间的区别在于它是以.
还是/
开头。 (Docs.)clean函数可以是一个简单的正则表达式测试,如下所示:function clean(s) { if (!/^[\.\/]/.test(s)) { s = './' + s; } return s; }
更多推荐
Cleaning package.json“ main”与require一起使用
本文标签:package Cleaning json require main本文发布于:2024-05-07 09:43:54,感谢您对本站的认可!版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
发布评论