通过对此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"
}
你能详细说一下客户端部分吗?浏览器不实现CommonJS模块系统。你在使用browserify吗? –
只要使用browserify和babelify转换就会更新 –