如何使用webpack忽略或替换一些未真正使用的模块?

时间:2019-02-10 06:55:00

标签: webpack

我需要在浏览器中使用一个软件包,但是它导入了一些节点模块,例如fs。当我使用webpack捆绑它时,它报告一些错误,说fs只能在节点上运行。但是在我的情况下,fs中使用的函数并未真正被调用。

有什么方法可以配置Webpack忽略或替换fs依赖性吗?我为webpack.config.js配置了:

resolve: {
  externals: ['fs']
}

尽管代码可以捆绑在一起,但是当它在浏览器上运行时,它失败了,因为它仍然需要fs

我想知道是否可以为虚拟包装fs创建一个虚拟{}替代品,就像一个空对象DROP TABLE IF EXISTS weather; DROP TABLE IF EXISTS recreation; DROP TABLE IF EXISTS people; DROP TABLE IF EXISTS education; DROP TABLE IF EXISTS company; DROP TABLE If EXISTS land; DROP TABLE IF EXISTS state; CREATE TABLE IF NOT EXISTS land (landid INTEGER PRIMARY KEY, state_reference INTEGER, state TEXT, state_code TEXT, state_short_code TEXT, land_name TEXT); CREATE TABLE IF NOT EXISTS company (companyid INTEGER PRIMARY KEY, state_reference INTEGER, state TEXT, company_name TEXT); CREATE TABLE IF NOT EXISTS education (educationid INTEGER PRIMARY KEY, state_reference INTEGER, state_code TEXT, education_name TEXT); CREATE TABLE IF NOT EXISTS people (peopleid INTEGER PRIMARY KEY, state_reference INTEGER, state_code TEXT, people_name TEXT); CREATE TABLE IF NOT EXISTS recreation (recreationid INTEGER PRIMARY KEY, state_reference INTEGER, state_short_code TEXT, recreation_name TEXT); CREATE TABLE IF NOT EXISTS weather (weatherid INTEGER PRIMARY KEY, state_reference INTEGER, state_short_code TEXT, weather_name TEXT); -- State Table added to save typing NOTE state_reference was included in all tables to allow state, state_code and state_short_code to be applied automatically (see updates) CREATE TABLE IF NOT EXISTS state (stateid INTEGER PRIMARY KEY, state_name TEXT UNIQUE, state_code TEXT UNIQUE, state_short_code TEXT UNIQUE ); -- Build the states (20 should be plenty for testing) INSERT INTO state (state_name, state_code, state_short_code) VALUES ('Alabama','alab','AL'), ('Alaska','alas','AK'), ('Arizona','ariz','AZ'), ('Arkansas','arka','AR'), ('California','cali','CA'), ('Colorado','colo','CO'), ('Connecticut','conn','CT'), ('Delaware','dela','DE'), ('Florida','flor','FL'), ('Georgia','geor','GA'), ('Hawaii','hawa','HI'), ('Idaho','idah','ID'), ('Illinois','illi','IL'), ('Indiana','indi','IN'), ('Iowa','iowa','IA'), ('Kansas','kans','KS'), ('Kentucky','kent','KY'), ('Louisiana','loui','LA'), ('Maine','main','ME'), ('Maryland','mary','MD') ; -- Insert into the 6 tables randomly generating a state reference INSERT INTO land (land_name,state_reference) VALUES ('LandA', (SELECT abs(random() % 20) + 1)) ,('LandB', (SELECT abs(random() % 20) + 1)) ,('LandC', (SELECT abs(random() % 20) + 1)) ,('LandD', (SELECT abs(random() % 20) + 1)) ,('LandE', (SELECT abs(random() % 20) + 1)) ,('LandF', (SELECT abs(random() % 20) + 1)) ,('LandG', (SELECT abs(random() % 20) + 1)) ,('LandH', (SELECT abs(random() % 20) + 1)) ,('LandI', (SELECT abs(random() % 20) + 1)) ,('LandJ', (SELECT abs(random() % 20) + 1)) ,('LandK', (SELECT abs(random() % 20) + 1)) ,('LandL', (SELECT abs(random() % 20) + 1)) ,('LandM', (SELECT abs(random() % 20) + 1)) ,('LandN', (SELECT abs(random() % 20) + 1)) ,('LandO', (SELECT abs(random() % 20) + 1)) ,('LandP', (SELECT abs(random() % 20) + 1)) ,('LandQ', (SELECT abs(random() % 20) + 1)) ,('LandR', (SELECT abs(random() % 20) + 1)) ,('LandS', (SELECT abs(random() % 20) + 1)) ,('LandT', (SELECT abs(random() % 20) + 1)) ,('LandU', (SELECT abs(random() % 20) + 1)) ,('LandV', (SELECT abs(random() % 20) + 1)) ,('LandW', (SELECT abs(random() % 20) + 1)) ,('LandX', (SELECT abs(random() % 20) + 1)) ,('LandY', (SELECT abs(random() % 20) + 1)) ,('LandZ', (SELECT abs(random() % 20) + 1)) ,('Land1', (SELECT abs(random() % 20) + 1)) ,('Land2', (SELECT abs(random() % 20) + 1)) ,('Land3', (SELECT abs(random() % 20) + 1)) ,('Land4', (SELECT abs(random() % 20) + 1)) ,('Land5', (SELECT abs(random() % 20) + 1)) ,('Land6', (SELECT abs(random() % 20) + 1)) ,('Land7', (SELECT abs(random() % 20) + 1)) ,('Land8', (SELECT abs(random() % 20) + 1)) ,('Land9', (SELECT abs(random() % 20) + 1)) ,('Land0', (SELECT abs(random() % 20) + 1)) ; INSERT INTO company (company_name,state_reference) VALUES ('CompA', (SELECT abs(random() % 20) + 1)) ,('CompB', (SELECT abs(random() % 20) + 1)) ,('CompC', (SELECT abs(random() % 20) + 1)) ,('CompD', (SELECT abs(random() % 20) + 1)) ,('CompE', (SELECT abs(random() % 20) + 1)) ,('CompF', (SELECT abs(random() % 20) + 1)) ,('CompG', (SELECT abs(random() % 20) + 1)) ,('CompH', (SELECT abs(random() % 20) + 1)) ,('CompI', (SELECT abs(random() % 20) + 1)) ,('CompJ', (SELECT abs(random() % 20) + 1)) ,('CompK', (SELECT abs(random() % 20) + 1)) ,('CompL', (SELECT abs(random() % 20) + 1)) ,('CompM', (SELECT abs(random() % 20) + 1)) ,('CompN', (SELECT abs(random() % 20) + 1)) ,('CompO', (SELECT abs(random() % 20) + 1)) ,('CompP', (SELECT abs(random() % 20) + 1)) ,('CompQ', (SELECT abs(random() % 20) + 1)) ,('CompR', (SELECT abs(random() % 20) + 1)) ,('CompS', (SELECT abs(random() % 20) + 1)) ,('CompT', (SELECT abs(random() % 20) + 1)) ,('CompU', (SELECT abs(random() % 20) + 1)) ,('CompV', (SELECT abs(random() % 20) + 1)) ,('CompW', (SELECT abs(random() % 20) + 1)) ,('CompX', (SELECT abs(random() % 20) + 1)) ,('CompY', (SELECT abs(random() % 20) + 1)) ,('CompZ', (SELECT abs(random() % 20) + 1)) ,('Comp1', (SELECT abs(random() % 20) + 1)) ,('Comp2', (SELECT abs(random() % 20) + 1)) ,('Comp3', (SELECT abs(random() % 20) + 1)) ,('Comp4', (SELECT abs(random() % 20) + 1)) ,('Comp5', (SELECT abs(random() % 20) + 1)) ,('Comp6', (SELECT abs(random() % 20) + 1)) ,('Comp7', (SELECT abs(random() % 20) + 1)) ,('Comp8', (SELECT abs(random() % 20) + 1)) ,('Comp9', (SELECT abs(random() % 20) + 1)) ,('Comp0', (SELECT abs(random() % 20) + 1)) ; INSERT INTO education (education_name,state_reference) VALUES ('EducA', (SELECT abs(random() % 20) + 1)) ,('EducB', (SELECT abs(random() % 20) + 1)) ,('EducC', (SELECT abs(random() % 20) + 1)) ,('EducD', (SELECT abs(random() % 20) + 1)) ,('EducE', (SELECT abs(random() % 20) + 1)) ,('EducF', (SELECT abs(random() % 20) + 1)) ,('EducG', (SELECT abs(random() % 20) + 1)) ,('EducH', (SELECT abs(random() % 20) + 1)) ,('EducI', (SELECT abs(random() % 20) + 1)) ,('EducJ', (SELECT abs(random() % 20) + 1)) ,('EducK', (SELECT abs(random() % 20) + 1)) ,('EducL', (SELECT abs(random() % 20) + 1)) ,('EducM', (SELECT abs(random() % 20) + 1)) ,('EducN', (SELECT abs(random() % 20) + 1)) ,('EducO', (SELECT abs(random() % 20) + 1)) ,('EducP', (SELECT abs(random() % 20) + 1)) ,('EducQ', (SELECT abs(random() % 20) + 1)) ,('EducR', (SELECT abs(random() % 20) + 1)) ,('EducS', (SELECT abs(random() % 20) + 1)) ,('EducT', (SELECT abs(random() % 20) + 1)) ,('EducU', (SELECT abs(random() % 20) + 1)) ,('EducV', (SELECT abs(random() % 20) + 1)) ,('EducW', (SELECT abs(random() % 20) + 1)) ,('EducX', (SELECT abs(random() % 20) + 1)) ,('EducY', (SELECT abs(random() % 20) + 1)) ,('EducZ', (SELECT abs(random() % 20) + 1)) ,('Educ1', (SELECT abs(random() % 20) + 1)) ,('Educ2', (SELECT abs(random() % 20) + 1)) ,('Educ3', (SELECT abs(random() % 20) + 1)) ,('Educ4', (SELECT abs(random() % 20) + 1)) ,('Educ5', (SELECT abs(random() % 20) + 1)) ,('Educ6', (SELECT abs(random() % 20) + 1)) ,('Educ7', (SELECT abs(random() % 20) + 1)) ,('Educ8', (SELECT abs(random() % 20) + 1)) ,('Educ9', (SELECT abs(random() % 20) + 1)) ,('Educ0', (SELECT abs(random() % 20) + 1)) ; INSERT INTO education (education_name,state_reference) VALUES ('EducA', (SELECT abs(random() % 20) + 1)) ,('EducB', (SELECT abs(random() % 20) + 1)) ,('EducC', (SELECT abs(random() % 20) + 1)) ,('EducD', (SELECT abs(random() % 20) + 1)) ,('EducE', (SELECT abs(random() % 20) + 1)) ,('EducF', (SELECT abs(random() % 20) + 1)) ,('EducG', (SELECT abs(random() % 20) + 1)) ,('EducH', (SELECT abs(random() % 20) + 1)) ,('EducI', (SELECT abs(random() % 20) + 1)) ,('EducJ', (SELECT abs(random() % 20) + 1)) ,('EducK', (SELECT abs(random() % 20) + 1)) ,('EducL', (SELECT abs(random() % 20) + 1)) ,('EducM', (SELECT abs(random() % 20) + 1)) ,('EducN', (SELECT abs(random() % 20) + 1)) ,('EducO', (SELECT abs(random() % 20) + 1)) ,('EducP', (SELECT abs(random() % 20) + 1)) ,('EducQ', (SELECT abs(random() % 20) + 1)) ,('EducR', (SELECT abs(random() % 20) + 1)) ,('EducS', (SELECT abs(random() % 20) + 1)) ,('EducT', (SELECT abs(random() % 20) + 1)) ,('EducU', (SELECT abs(random() % 20) + 1)) ,('EducV', (SELECT abs(random() % 20) + 1)) ,('EducW', (SELECT abs(random() % 20) + 1)) ,('EducX', (SELECT abs(random() % 20) + 1)) ,('EducY', (SELECT abs(random() % 20) + 1)) ,('EducZ', (SELECT abs(random() % 20) + 1)) ,('Educ1', (SELECT abs(random() % 20) + 1)) ,('Educ2', (SELECT abs(random() % 20) + 1)) ,('Educ3', (SELECT abs(random() % 20) + 1)) ,('Educ4', (SELECT abs(random() % 20) + 1)) ,('Educ5', (SELECT abs(random() % 20) + 1)) ,('Educ6', (SELECT abs(random() % 20) + 1)) ,('Educ7', (SELECT abs(random() % 20) + 1)) ,('Educ8', (SELECT abs(random() % 20) + 1)) ,('Educ9', (SELECT abs(random() % 20) + 1)) ,('Educ0', (SELECT abs(random() % 20) + 1)) ; INSERT INTO people (people_name,state_reference) VALUES ('ppplA', (SELECT abs(random() % 20) + 1)) ,('ppplB', (SELECT abs(random() % 20) + 1)) ,('ppplC', (SELECT abs(random() % 20) + 1)) ,('ppplD', (SELECT abs(random() % 20) + 1)) ,('ppplE', (SELECT abs(random() % 20) + 1)) ,('ppplF', (SELECT abs(random() % 20) + 1)) ,('ppplG', (SELECT abs(random() % 20) + 1)) ,('ppplH', (SELECT abs(random() % 20) + 1)) ,('ppplI', (SELECT abs(random() % 20) + 1)) ,('ppplJ', (SELECT abs(random() % 20) + 1)) ,('ppplK', (SELECT abs(random() % 20) + 1)) ,('ppplL', (SELECT abs(random() % 20) + 1)) ,('ppplM', (SELECT abs(random() % 20) + 1)) ,('ppplN', (SELECT abs(random() % 20) + 1)) ,('ppplO', (SELECT abs(random() % 20) + 1)) ,('ppplP', (SELECT abs(random() % 20) + 1)) ,('ppplQ', (SELECT abs(random() % 20) + 1)) ,('ppplR', (SELECT abs(random() % 20) + 1)) ,('ppplS', (SELECT abs(random() % 20) + 1)) ,('ppplT', (SELECT abs(random() % 20) + 1)) ,('ppplU', (SELECT abs(random() % 20) + 1)) ,('ppplV', (SELECT abs(random() % 20) + 1)) ,('ppplW', (SELECT abs(random() % 20) + 1)) ,('ppplX', (SELECT abs(random() % 20) + 1)) ,('ppplY', (SELECT abs(random() % 20) + 1)) ,('ppplZ', (SELECT abs(random() % 20) + 1)) ,('pppl1', (SELECT abs(random() % 20) + 1)) ,('pppl2', (SELECT abs(random() % 20) + 1)) ,('pppl3', (SELECT abs(random() % 20) + 1)) ,('pppl4', (SELECT abs(random() % 20) + 1)) ,('pppl5', (SELECT abs(random() % 20) + 1)) ,('pppl6', (SELECT abs(random() % 20) + 1)) ,('pppl7', (SELECT abs(random() % 20) + 1)) ,('pppl8', (SELECT abs(random() % 20) + 1)) ,('pppl9', (SELECT abs(random() % 20) + 1)) ,('pppl0', (SELECT abs(random() % 20) + 1)) ; INSERT INTO recreation (recreation_name,state_reference) VALUES ('recrA', (SELECT abs(random() % 20) + 1)) ,('recrB', (SELECT abs(random() % 20) + 1)) ,('recrC', (SELECT abs(random() % 20) + 1)) ,('recrD', (SELECT abs(random() % 20) + 1)) ,('recrE', (SELECT abs(random() % 20) + 1)) ,('recrF', (SELECT abs(random() % 20) + 1)) ,('recrG', (SELECT abs(random() % 20) + 1)) ,('recrH', (SELECT abs(random() % 20) + 1)) ,('recrI', (SELECT abs(random() % 20) + 1)) ,('recrJ', (SELECT abs(random() % 20) + 1)) ,('recrK', (SELECT abs(random() % 20) + 1)) ,('recrL', (SELECT abs(random() % 20) + 1)) ,('recrM', (SELECT abs(random() % 20) + 1)) ,('recrN', (SELECT abs(random() % 20) + 1)) ,('recrO', (SELECT abs(random() % 20) + 1)) ,('recrP', (SELECT abs(random() % 20) + 1)) ,('recrQ', (SELECT abs(random() % 20) + 1)) ,('recrR', (SELECT abs(random() % 20) + 1)) ,('recrS', (SELECT abs(random() % 20) + 1)) ,('recrT', (SELECT abs(random() % 20) + 1)) ,('recrU', (SELECT abs(random() % 20) + 1)) ,('recrV', (SELECT abs(random() % 20) + 1)) ,('recrW', (SELECT abs(random() % 20) + 1)) ,('recrX', (SELECT abs(random() % 20) + 1)) ,('recrY', (SELECT abs(random() % 20) + 1)) ,('recrZ', (SELECT abs(random() % 20) + 1)) ,('recr1', (SELECT abs(random() % 20) + 1)) ,('recr2', (SELECT abs(random() % 20) + 1)) ,('recr3', (SELECT abs(random() % 20) + 1)) ,('recr4', (SELECT abs(random() % 20) + 1)) ,('recr5', (SELECT abs(random() % 20) + 1)) ,('recr6', (SELECT abs(random() % 20) + 1)) ,('recr7', (SELECT abs(random() % 20) + 1)) ,('recr8', (SELECT abs(random() % 20) + 1)) ,('recr9', (SELECT abs(random() % 20) + 1)) ,('recr0', (SELECT abs(random() % 20) + 1)) ; INSERT INTO weather (weather_name,state_reference) VALUES ('WthrA', (SELECT abs(random() % 20) + 1)) ,('WthrB', (SELECT abs(random() % 20) + 1)) ,('WthrC', (SELECT abs(random() % 20) + 1)) ,('WthrD', (SELECT abs(random() % 20) + 1)) ,('WthrE', (SELECT abs(random() % 20) + 1)) ,('WthrF', (SELECT abs(random() % 20) + 1)) ,('WthrG', (SELECT abs(random() % 20) + 1)) ,('WthrH', (SELECT abs(random() % 20) + 1)) ,('WthrI', (SELECT abs(random() % 20) + 1)) ,('WthrJ', (SELECT abs(random() % 20) + 1)) ,('WthrK', (SELECT abs(random() % 20) + 1)) ,('WthrL', (SELECT abs(random() % 20) + 1)) ,('WthrM', (SELECT abs(random() % 20) + 1)) ,('WthrN', (SELECT abs(random() % 20) + 1)) ,('WthrO', (SELECT abs(random() % 20) + 1)) ,('WthrP', (SELECT abs(random() % 20) + 1)) ,('WthrQ', (SELECT abs(random() % 20) + 1)) ,('WthrR', (SELECT abs(random() % 20) + 1)) ,('WthrS', (SELECT abs(random() % 20) + 1)) ,('WthrT', (SELECT abs(random() % 20) + 1)) ,('WthrU', (SELECT abs(random() % 20) + 1)) ,('WthrV', (SELECT abs(random() % 20) + 1)) ,('WthrW', (SELECT abs(random() % 20) + 1)) ,('WthrX', (SELECT abs(random() % 20) + 1)) ,('WthrY', (SELECT abs(random() % 20) + 1)) ,('WthrZ', (SELECT abs(random() % 20) + 1)) ,('Wthr1', (SELECT abs(random() % 20) + 1)) ,('Wthr2', (SELECT abs(random() % 20) + 1)) ,('Wthr3', (SELECT abs(random() % 20) + 1)) ,('Wthr4', (SELECT abs(random() % 20) + 1)) ,('Wthr5', (SELECT abs(random() % 20) + 1)) ,('Wthr6', (SELECT abs(random() % 20) + 1)) ,('Wthr7', (SELECT abs(random() % 20) + 1)) ,('Wthr8', (SELECT abs(random() % 20) + 1)) ,('Wthr9', (SELECT abs(random() % 20) + 1)) ,('Wthr0', (SELECT abs(random() % 20) + 1)) ; -- Update the tables to apply the text for the state, state_code and state_short_code UPDATE land SET state = (SELECT state_name FROM state WHERE stateid = state_reference), state_code = (SELECT state_code FROM state WHERE stateid = state_reference), state_short_code = (SELECT state_short_code FROM state WHERE stateid = state_reference) ; UPDATE company SET state = (SELECT state_name FROM state WHERE stateid = state_reference) ; UPDATE education SET state_code = (SELECT state_code FROM state WHERE stateid = state_reference) ; UPDATE people SET state_code = (SELECT state_code FROM state WHERE stateid = state_reference) ; UPDATE recreation SET state_short_code = (SELECT state_short_code FROM state WHERE stateid = state_reference) ; UPDATE weather SET state_short_code = (SELECT state_short_code FROM state WHERE stateid = state_reference) ; -- Just in case the tables need to be checked SELECT * FROM land ; SELECT * FROM company; SELECT * FROM education; SELECT * FROM people; SELECT * FROM recreation; SELECT * FROM weather; -- Now try the query as per the question (well close to it) -- EXPLAIN QUERY PLAN SELECT * FROM land,company, education, people, recreation, weather WHERE upper(land.state)= upper('Maine') AND land.State=company.State AND land.State_code=education.State_code AND land.State_code=people.State_code AND land.State_short_code=recreation.State_short_code AND land.State_short_code=weather.State_short_code ; -- Calculate the permutations WITH counts AS ( SELECT (SELECT count() FROM land WHERE upper(state) = upper('Maine')) AS landcount , (SELECT count() FROM company WHERE upper(state) = upper('Maine')) AS companycount, (SELECT count() FROM education WHERE upper(state_code) = upper('main')) AS educationcount, (SELECT count() FROM people WHERE upper(state_code) = upper('main')) AS peoplecount, (SELECT count() FROM recreation WHERE upper(state_short_code) = upper('ME')) AS recreationcount, (SELECT count() FROM weather WHERE upper(state_short_code) = upper('ME')) AS weathercount ) SELECT *, (landcount * companycount * educationcount * peoplecount * recreationcount * weathercount) AS permutations FROM counts; 一样简单,但是我找不到解决方法

1 个答案:

答案 0 :(得分:2)

您可以使用resolve.alias config option替换模块

以您的情况

resolve: {
  alias: {
    fs: './fs-mock.js'
  }
}