Skip to content

Commit 0eff3f5

Browse files
committed
stash
1 parent 7c0c635 commit 0eff3f5

File tree

3 files changed

+92
-61
lines changed

3 files changed

+92
-61
lines changed

temp/my-webpack/webpack-lib/Compilation.js

+36-12
Original file line numberDiff line numberDiff line change
@@ -50,20 +50,44 @@ class Compilation extends Tapable {
5050
// weak:false
5151
// }
5252
// name: main
53-
addEntry(context, entry, name, finallyCallback){
54-
this._addModuleChain(context, entry, name);
55-
finallyCallback()
53+
addEntry(context, entry, name, callback){
54+
// this._addModuleChain(context, entry, name);
55+
// callback()
56+
this._addModuleChain(
57+
context,
58+
entry,
59+
module => {
60+
// 将编译后的入口模块添加到入口数组中
61+
this.entries.push(module)
62+
},
63+
(err, module) => {
64+
callback(null, module)
65+
}
66+
)
5667
}
5768

58-
_addModuleChain(context, entry, name){
59-
const module = normalModuleFactory.create({
60-
context: this.context,
61-
name, // 所属的代码块的名字 main
62-
request: path.posix.join(context, entry) // 此模块的绝对路径
63-
})
64-
module.build(this)
65-
// 把编译后的入口模块添加到入口数组
66-
this.entries.push(module)
69+
_addModuleChain(context, entry, onModule, callback){
70+
// const module = normalModuleFactory.create({
71+
// context: this.context,
72+
// name, // 所属的代码块的名字 main
73+
// request: path.posix.join(context, entry) // 此模块的绝对路径
74+
// })
75+
// module.build(this)
76+
// // 把编译后的入口模块添加到入口数组
77+
// this.entries.push(module)
78+
normalModuleFactory.create(
79+
{
80+
contextInfo: {
81+
issuer: "",
82+
compiler: this.compiler.name
83+
},
84+
context,
85+
dependencies: [entry]
86+
},
87+
(err, module) => {
88+
89+
}
90+
)
6791
}
6892

6993
buildDependencies(module, dependencies){

temp/my-webpack/webpack-lib/Compiler.js

+1
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ class Compiler extends Tapable {
6969

7070
compile(onCompiled){
7171
const compilation = this.newCompilation()
72+
// 创建完compilation后,触发compilation的addEntry方法。
7273
// SingleEntryPlugin 监听了make事件,触发compilation.addEntry方法
7374
this.hooks.make.callAsync(compilation, err => {
7475
compilation.seal(err => { // 通过模块生成代码块

webpack.config.js

+55-49
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const path = require('path');
2-
const HtmlWebpackPlugin = require('html-webpack-plugin')
2+
// const HtmlWebpackPlugin = require('html-webpack-plugin')
33
// const MiniCssExtractPlugin = require("mini-css-extract-plugin");
44
// const MediaExtractPlugin = require('./plugins/MediaExtractPlugin')
55
const Plugin1 = require('./plugins/plugin1')
@@ -12,61 +12,67 @@ module.exports = {
1212
filename: '[name].js',
1313
path: path.resolve(__dirname, 'dist')
1414
},
15-
resolveLoader: {
16-
modules: ['node_modules', path.resolve(__dirname, 'loaders')],
17-
},
15+
// resolveLoader: {
16+
// modules: ['node_modules', path.resolve(__dirname, 'loaders')],
17+
// },
1818
module: {
1919
rules: [
20-
{
21-
test: /\.js$/,
22-
use: ['loader2', 'loader1']
23-
},
20+
// {
21+
// test: /\.js$/,
22+
// use: ['loader2', 'loader1']
23+
// },
2424
{
2525
test: /\.js$/,
2626
use: {
27-
loader: path.resolve(__dirname, 'loaders', 'babel-loader'),
28-
options: {
29-
presets: [
30-
'@babel/preset-env'
31-
]
32-
}
27+
loader: path.resolve(__dirname, 'loaders', 'loader1'),
3328
}
3429
},
35-
{
36-
test: /\.(png|jpg)$/,
37-
use: path.resolve(__dirname, 'loaders', 'file-loader')
38-
},
39-
{
40-
test: /\.less$/,
41-
use: [
42-
'style-loader',
43-
{
44-
loader: 'css-loader',
45-
options: {
46-
importLoaders: 1,
47-
sourceMap: false
48-
}
49-
},
50-
'less-loader'
51-
// path.resolve(__dirname, 'loaders', 'less-loader')
52-
]
53-
},
54-
{
55-
test: /\.css$/,
56-
use: [
57-
// path.resolve(__dirname, 'loaders', 'style-loader'),
58-
// 'style-loader',
59-
// MiniCssExtractPlugin.loader,
60-
// path.resolve(__dirname, 'loaders', 'css-loader'),
61-
{
62-
loader: 'css-loader',
63-
options: {
64-
sourceMap: false,
65-
// modules: true,
66-
}
67-
},
68-
]
69-
}
30+
// {
31+
// test: /\.js$/,
32+
// use: {
33+
// loader: path.resolve(__dirname, 'loaders', 'babel-loader'),
34+
// options: {
35+
// presets: [
36+
// '@babel/preset-env'
37+
// ]
38+
// }
39+
// }
40+
// },
41+
// {
42+
// test: /\.(png|jpg)$/,
43+
// use: path.resolve(__dirname, 'loaders', 'file-loader')
44+
// },
45+
// {
46+
// test: /\.less$/,
47+
// use: [
48+
// 'style-loader',
49+
// {
50+
// loader: 'css-loader',
51+
// options: {
52+
// importLoaders: 1,
53+
// sourceMap: false
54+
// }
55+
// },
56+
// 'less-loader'
57+
// // path.resolve(__dirname, 'loaders', 'less-loader')
58+
// ]
59+
// },
60+
// {
61+
// test: /\.css$/,
62+
// use: [
63+
// // path.resolve(__dirname, 'loaders', 'style-loader'),
64+
// // 'style-loader',
65+
// // MiniCssExtractPlugin.loader,
66+
// // path.resolve(__dirname, 'loaders', 'css-loader'),
67+
// {
68+
// loader: 'css-loader',
69+
// options: {
70+
// sourceMap: false,
71+
// // modules: true,
72+
// }
73+
// },
74+
// ]
75+
// }
7076
]
7177
},
7278
plugins: [

0 commit comments

Comments
 (0)