使用 Browserify/Babel/node.js 你可以要求一个基于可变字符串的文件吗

Using Browserify/Babel/node.js can you require a file based on a variable string

根据此 question,您可以在 node.js 的 运行 时间要求基于字符串的路径。

奇怪的是,这似乎在节点服务器端对我有用,但在客户端使用 Babel/Browserify

似乎不起作用

对于这个特定的错误,当实际 API 出现故障时,我基本上有很多模拟 json 数据想要 require 进行测试。

  // 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 devDependencies如下:

  "devDependencies": {
    "browserify": "^8.0.3",
    "babel": "^4.0.1",
    "babelify": "~6.1.2"
  }

Browserify 只能计算可静态分析的依赖关系。如果您动态生成导入,它无法知道要捆绑哪些模块。