使用Browserify / Babel / node.js你可以要求一个基于variablesstring的文件

针对这个问题,您可以在node.js中在运行时需要一个基于string的path。

奇怪的是,这似乎为我工作在节点服务器端没关系,但似乎不工作客户端使用巴别/ Browserify

对于这个特定的错误,我基本上有很多模拟JSON数据,我想要testing时,实际的API是closures的。

  // 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一起构build

browserify --debug -t [babelify] client.js > public/js/bundle.js

我的package.json中的开发devDependencies如下所示:

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

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