Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.6k views
in Technique[技术] by (71.8m points)

Node的require(id), id是否可以为变量

加入我要动态引入npm安装的依赖。比如 axios 或者 lodash。
那么:

let packageName = "axios", axios = require(packageName);
// Cannot find module 'axios'~~~~

是否能达到,我自己尝试会失败


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
let packageName = "axios"

这句代码是定义一个变量packageName,是它的值等于字符串"axios",这个字符串"axios"跟插件axios没有关系。
此时你再使用

axios = require(packageName);

肯定会报Cannot find module 'axios'

require()用于引入模块、 JSON、或本地文件。
可以使用相对路径(例如 ./、 ./foo、 ./bar/baz、 ../foo)引入本地模块或 JSON 文件,路径会根据 __dirname 定义的目录名或当前工作目录进行处理。

不带路径的模块一般都是node_modules 模块或 Node.js 内置模块
let axios = require("axios")
此处的axios省略掉了路径node_modules或者node.js内置模块的路径。它跟字符串"axios"有本质的区别。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...