在Browserify中使用Babelify时,是否有方法访问import
本机节点模块(例如crypto
、fs
、path
)?
例如:
'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