在import
使用Babelify时,有Browserify本机节点模块(例如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会给我这个错误:
错误:在解析文件时尝试静态调用
{ readFile: [Function: readFile], readFileSync: [Function: readFileSync], readdir: [Function: readdir], readdirSync: [Function: readdirSync] }
作为函数:/home/vincent/www/project1/resources/js/foo.js:/ home / vincent / www / project1 /资源/ JS / foo.js
我也尝试了以下相同的结果:
import * as fs from 'fs';
import { fs } from fs;
答案 0 :(得分:3)
这是a known issue brfs和Babelify:
一旦静态模块可以处理ES6导入,它最终将成为可能。现在你需要使用CommonJS语法“要求”brfs,并在babelify之后运行brfs转换。
来源: