按照老師的寫法設(shè)置loader,打包也不報(bào)錯(cuò),但瀏覽器提示import錯(cuò)誤,請(qǐng)問(wèn)誰(shuí)遇到過(guò)。
跟著視頻的安裝步驟安裝了bable打包的時(shí)候也不報(bào)錯(cuò),但在瀏覽器控制臺(tái)報(bào)錯(cuò)了,請(qǐng)問(wèn)怎么處理?
跟著視頻的安裝步驟安裝了bable打包的時(shí)候也不報(bào)錯(cuò),但在瀏覽器控制臺(tái)報(bào)錯(cuò)了,請(qǐng)問(wèn)怎么處理?
2019-04-19
舉報(bào)
2022-03-06
檢查你的正則是否正確
2020-04-10
//?jshint?esversion:6?
const?path?=?require('path');
const?glob?=?require('glob');?//?glob.sync()返回正則路徑下所有匹配的文件
const?htmlWebpackPlugin?=?require('html-webpack-plugin');
const?{?CleanWebpackPlugin?}?=?require('clean-webpack-plugin');
//?__dirname為當(dāng)前絕對(duì)路徑
//?path.resolve:會(huì)把一個(gè)路徑或者一個(gè)路徑片段的序列解析為一個(gè)絕對(duì)路徑
//?path.join:?使用平臺(tái)特定的分割符號(hào)(/或者\(yùn))把給定的path片段連接到一起,并且規(guī)范化成路徑,若任意一個(gè)路徑片段類型錯(cuò)誤,會(huì)報(bào)錯(cuò)
//*?*和?*一樣,可以匹配任何內(nèi)容,但**不經(jīng)可以匹配路徑中的某一段,而且可以匹配'a/b/c'這樣帶有'/'的內(nèi)容,所以它還可以匹配子文件夾下的文件
let?DIST_PATH?=?path.resolve(__dirname,?'../dist');
let?SRC_PATH?=?path.resolve(__dirname,?'../src');
let?entryFiles?=?{};?//?入口文件
let?pluginAll?=?[];?//?存放所有的html插件
//?let?filesTest?=?path.join(SRC_PATH?+?'/../*.js');
//?console.log(filesTest);
//?[\s]表示只要出現(xiàn)空白就匹配
//?[\S]表示非空白就匹配
let?jsFiles?=?glob.sync(SRC_PATH?+?'/**/*.js');
console.log(jsFiles);
jsFiles.forEach((value)?=>?{
????let?subkey?=?value.match(/src\/(\S*)\.js/)[1];
????entryFiles[subkey]?=?value;
});
let?htmlFiles?=?glob.sync(SRC_PATH?+?'/**/*.html');
console.log(htmlFiles);
htmlFiles.forEach((value)?=>?{
????let?pageStr?=?value.match(/src\/(\S*)\.html/);
????let?name?=?pageStr[1];
????console.log(name);
????let?htmlConfig?=?{
????????filename:?path.join(DIST_PATH,?name?+?'[chunkhash:5].html'),
????????title:?name,
????????template:?path.join(SRC_PATH,?name?+?'.html'),
????????inject:?false,?//?script放在html里面的位置?body?head?true(默認(rèn)值)?false
????????hash:?true,
????????chunks:?[name],
????????excludeChunks:?[],?//?排除的js
????????date:?new?Date(),
????????minify:?{
????????????removeComments:?true,
????????????//?collapseWhitespace:?true,?//壓縮空格
????????}
????};
????//?如果是index頁(yè)面,需要添加common.js到頁(yè)面中
????if?(name?===?'index/index')?{
????????htmlConfig.chunks?=?[name,?'app'];
????????console.log(htmlConfig.chunks);
????}
????let?htmlPlugin?=?new?htmlWebpackPlugin(htmlConfig);
????pluginAll.push(htmlPlugin);
});
pluginAll.push(new?CleanWebpackPlugin());
module.exports?=?{
????//?入口js文件
????//?entry?:?path.resolve(__dirname,'../src/index.js')?,?//方式一:打包一個(gè)js
????//?entry?:?['./src/index.js','./src/test.js'],?????????//方式二:把多個(gè)js打包在一起
????//?entry:?{????????????????????????????????????????????//方式三:把多個(gè)js分別打包成不同目錄
????//?????index:?'./src/index.js',
????//?????test:?'./src/test.js'
????//?},
????entry:?entryFiles,
????//?編譯輸出的路徑
????output:?{
????????path:?DIST_PATH,?//?本地編譯后地址
????????filename:?'[name].[chunkhash:5].js',
????????//?publicPath:?'http://cdn.com',?//?上線地址
????},
????//?模塊解析
????module:?{
????????rules:?[
????????????{
????????????????test:?/\.js$/,
????????????????exclude:?/node_modules/,
????????????????loader:?'babel-loader',
????????????????query:?{
????????????????????presets:?['@babel/preset-env']
????????????????}
????????????}
????????]
????},
????//?插件
????plugins:?pluginAll,
????//?并發(fā)服務(wù)器
????devServer:?{
????????hot:?true,?//?熱更新
????????contentBase:?DIST_PATH,
????????port:?8011,?//?服務(wù)端口
????????host:?'0.0.0.0',//?host體地址
????????historyApiFallback:?true,
????????open:?true,?//?自動(dòng)打開(kāi)瀏覽器
????????useLocalIp:?true,//?是否在打包的時(shí)候用自己的ip
????????proxy:?{
????????????'/api':?'http://localhost:3000'
????????},
????????https:?true
????},
????watchOptions:?{
????????poll:?1000,//?每秒檢查一次變動(dòng)
????????aggregateTimeout:?500,?//?防止重復(fù)按鍵,500毫米內(nèi)算按鍵一次
????????ignored:?'/node_modules/',//?不監(jiān)測(cè)大型文件夾
????}
};
2019-05-06
注意版本,老師講課的時(shí)候是webpack1.3的版本。你現(xiàn)在安裝的webpack 應(yīng)該是4.0以上了,雖然老師講的大部分內(nèi)容還是挺好的。但有一些用法是改變了的。如loader的配置就改成下面這樣了。具體可以去看npm官網(wǎng)關(guān)于baber-loader的配置,例如如下:
module:?{
??rules:?[
????{
??????test:?/\.js$/,
??????exclude:?/(node_modules|bower_components)/,
??????use:?{
????????loader:?'babel-loader',
????????options:?{
??????????presets:?['@babel/preset-env']
????????}
??????}
????}
??]
}
2019-05-06
大哥,你的layer里面的關(guān)系比較復(fù)雜吧,包括其他,js和css的引用吧,這樣可能要在配置文件里面用style-loader和css-loader 配合處理才行吧。
但,如果你改成簡(jiǎn)單的彈出一個(gè)文本應(yīng)該沒(méi)問(wèn)題的。