2015-06-22 54 views
1

通过对此question进行标记,您可以在node.js中的运行时需要一个基于字符串的路径。使用Browserify/Babel/node.js您可以要求基于变量字符串的文件

奇怪的是,这似乎为我的节点服务器端好工作,但似乎并没有使用巴贝尔/ Browserify

对于这个特殊的错误工作客户端,我基本上有很多我想要的模拟JSON数据到require进行测试,当实际API被关闭时。

// 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'这将是检索数据没有问题... ...和我提到,如果我运行这个服务器端它没有问题,但是当我运行代码客户端时并不好。

我使用巴贝尔/ babelify到transpile的ES6代码ES5

使用下面的命令来建立与browserify

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

我开发devDependencies在我的package.json如下:

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

你能详细说一下客户端部分吗?浏览器不实现CommonJS模块系统。你在使用browserify吗? –

+0

只要使用browserify和babelify转换就会更新 –

回答

2

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

相关问题