使用 Browserify/Babel/node.js您是否需要一个基于变量字符串的文件

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

本文关键字:于变量 一个 变量 文件 字符串 Browserify js node 是否 使用 Babel      更新时间:2023-09-26

根据这个问题,你可以要求一个基于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 --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 只能在依赖项静态分析的情况下计算它们。如果您动态生成导入,它无法知道要捆绑哪些模块。