使用Browserify / Babel / node.js可以要求基于变量字符串

时间:2015-06-22 04:36:27

标签: javascript node.js browserify

根据此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"
  }

1 个答案:

答案 0 :(得分:2)

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