Nodejs 有什么处理引用路径比较好的方法?每次 require('../../../utilities/string') 这样都得想好久
Nodejs 有什么处理引用路径比较好的方法?每次 require(’…/…/…/utilities/string’) 这样都得想好久
react-native 似乎用了类似 @providesModule NavigationContainer
这样的方法来注册全局 module,但是好像需要预编译(貌似 watchman)支持?
package.json 能否把项目中某个 js 文件注册为一个 module?
好几种做法:本地 module , 私有 module
最简单的就是本地 module
package.json
{
…
“devDependencies”: {
“my-utils”: “/Users/xxx/my-utils”
}
}
也就是要有一个 map 吧
参考下这里: https://gist.github.com/branneman/8048520
目前我用 app-module-path 这个模块解决的, NODE_PATH 也是个不错方案
可以在编辑器里面装路径提示的插件…
楼上正解。 Tab 补全什么的最方便了。
可有采用 webpack 这样类似的工具打包呢?有的话,直接使用其提供的 alias 咯。
可以用 babel module-alias
在 Node.js 中处理引用路径时,确实可能会遇到路径过长或复杂的问题。以下是一些改进的方法:
-
使用
path
模块: 使用 Node.js 内置的path
模块可以简化路径的拼接。const path = require('path'); const utilitiesPath = path.join(__dirname, '..', '..', 'utilities', 'string'); const stringUtils = require(utilitiesPath);
-
设置
NODE_PATH
环境变量: 你可以将项目的根目录添加到NODE_PATH
环境变量中,然后在require
时直接引用相对路径。export NODE_PATH=$(pwd)
然后在代码中:
const stringUtils = require('utilities/string');
-
使用模块别名(借助 Webpack 或 tsconfig.json): 如果你使用 Webpack 或 TypeScript,可以通过配置别名来简化路径。
Webpack 配置示例:
resolve: { alias: { '[@utilities](/user/utilities)': path.resolve(__dirname, 'src/utilities'), }, }
然后在代码中:
const stringUtils = require('[@utilities](/user/utilities)/string');
-
使用
require-hook
等第三方库: 还有一些第三方库如require-hook
可以帮助你自动处理路径别名。
总之,选择哪种方法取决于你的项目结构和构建工具。希望这些方法能帮助你简化 Node.js 中的引用路径问题。