根据此question,您可以在node.js中的运行时根据字符串要求一个路径。
奇怪的是,这对我来说在节点服务器方面似乎没问题,但似乎在客户端使用Babel / Browserify
对于这个特殊的错误,当实际API关闭时,我基本上有很多我希望require
进行测试的模拟json数据。
// slug comes into the function and could for example be 'movies'
let modulePath = '../mock/products/' + slug + '.js'
let data = require(modulePath)
这给了我以下错误
Failed! Error: Cannot find module '../mock/products/movies.js'
如果我将其更改为let modulePath = '../mock/products/movies.js'
,那么检索数据就没有问题......正如我提到的,如果我运行此服务器端它没有问题,但是当我运行代码客户端时不好
我正在使用babel / babelify将ES6代码转换为ES5
使用以下命令使用browserify构建
browserify --debug -t [babelify] client.js > public/js/bundle.js
我的package.json中的Dev dev devDependencies如下:
"devDependencies": {
"browserify": "^8.0.3",
"babel": "^4.0.1",
"babelify": "~6.1.2"
}
答案 0 :(得分:2)
Browserify只能在可静态分析的情况下计算依赖关系。如果要动态生成导入,它无法知道要捆绑哪些模块。