Babelify和本机Node模块



在Browserify中使用Babelify时,是否有方法访问import本机节点模块(例如cryptofspath)?

例如:

'use strict';
import $ from 'jquery';
import fs from 'fs'; // <------ this line causes an error
var data = JSON.parse(fs.readFileSync('foo.json', 'utf8'));
$(document).ready(function () {
  // stuff
});

Browserify在我尝试运行它时给了我这个错误:

错误:解析文件/home/vicent/www/project1/resources/js/foo.js时,试图静态调用{ readFile: [Function: readFile], readFileSync: [Function: readFileSync], readdir: [Function: readdir], readdirSync: [Function: readdirSync] }作为函数

我也尝试了以下相同的结果:

import * as fs from 'fs';
import { fs } from fs;

这是brfs和Babelify的已知问题:

一旦静态模块能够处理ES6导入,它最终将成为可能。目前,您需要使用CommonJS语法"require"brfs,并在babelify之后运行brfs转换。

来源:

  • https://github.com/babel/babelify/issues/81
  • https://github.com/substack/brfs/issues/39

最新更新