Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CoCo_Code_Op2
next.js
提交
8d2bbf94
N
next.js
项目概览
CoCo_Code_Op2
/
next.js
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
next.js
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8d2bbf94
编写于
4月 07, 2017
作者:
A
alex newman
提交者:
Guillermo Rauch
4月 07, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Refactor the build server to remove tie to fs (#1656)
上级
6e0e2307
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
10 addition
and
16 deletion
+10
-16
server/build/index.js
server/build/index.js
+7
-12
server/build/replace.js
server/build/replace.js
+2
-3
server/build/webpack.js
server/build/webpack.js
+1
-1
未找到文件。
server/build/index.js
浏览文件 @
8d2bbf94
import
{
tmpdir
}
from
'
os
'
import
{
join
}
from
'
path
'
import
getConfig
from
'
../config
'
import
fs
from
'
mz/fs
'
import
uuid
from
'
uuid
'
import
del
from
'
del
'
...
...
@@ -14,10 +13,8 @@ export default async function build (dir) {
try
{
await
runCompiler
(
compiler
)
// Pass in both the buildDir and the dir to retrieve config
await
writeBuildStats
(
buildDir
,
dir
)
await
writeBuildId
(
buildDir
,
dir
)
await
writeBuildStats
(
buildDir
)
await
writeBuildId
(
buildDir
)
}
catch
(
err
)
{
console
.
error
(
`> Failed to build on
${
buildDir
}
`
)
throw
err
...
...
@@ -48,24 +45,22 @@ function runCompiler (compiler) {
})
}
async
function
writeBuildStats
(
buildDir
,
dir
)
{
const
dist
=
getConfig
(
dir
).
distDir
async
function
writeBuildStats
(
dir
)
{
// Here we can't use hashes in webpack chunks.
// That's because the "app.js" is not tied to a chunk.
// It's created by merging a few assets. (commons.js and main.js)
// So, we need to generate the hash ourself.
const
assetHashMap
=
{
'
app.js
'
:
{
hash
:
await
md5File
(
join
(
buildDir
,
dist
,
'
app.js
'
))
hash
:
await
md5File
(
join
(
dir
,
'
.next
'
,
'
app.js
'
))
}
}
const
buildStatsPath
=
join
(
buildDir
,
dist
,
'
build-stats.json
'
)
const
buildStatsPath
=
join
(
dir
,
'
.next
'
,
'
build-stats.json
'
)
await
fs
.
writeFile
(
buildStatsPath
,
JSON
.
stringify
(
assetHashMap
),
'
utf8
'
)
}
async
function
writeBuildId
(
buildDir
,
dir
)
{
const
dist
=
getConfig
(
dir
).
distDir
const
buildIdPath
=
join
(
buildDir
,
dist
,
'
BUILD_ID
'
)
async
function
writeBuildId
(
dir
)
{
const
buildIdPath
=
join
(
dir
,
'
.next
'
,
'
BUILD_ID
'
)
const
buildId
=
uuid
.
v4
()
await
fs
.
writeFile
(
buildIdPath
,
buildId
,
'
utf8
'
)
}
server/build/replace.js
浏览文件 @
8d2bbf94
...
...
@@ -4,10 +4,9 @@ import getConfig from '../config'
export
default
async
function
replaceCurrentBuild
(
dir
,
buildDir
)
{
const
dist
=
getConfig
(
dir
).
distDir
const
buildDist
=
getConfig
(
buildDir
).
distDir
const
_dir
=
join
(
dir
,
dist
)
const
_buildDir
=
join
(
buildDir
,
dist
)
const
oldDir
=
join
(
buildDir
,
`
${
buildDist
}
.old`
)
const
_buildDir
=
join
(
buildDir
,
'
.next
'
)
const
oldDir
=
join
(
buildDir
,
'
.next.old
'
)
try
{
await
move
(
_dir
,
oldDir
)
...
...
server/build/webpack.js
浏览文件 @
8d2bbf94
...
...
@@ -265,7 +265,7 @@ export default async function createCompiler (dir, { dev = false, quiet = false,
context
:
dir
,
entry
,
output
:
{
path
:
join
(
buildDir
||
dir
,
config
.
distDir
),
path
:
buildDir
?
join
(
buildDir
,
'
.next
'
)
:
join
(
dir
,
config
.
distDir
),
filename
:
'
[name]
'
,
libraryTarget
:
'
commonjs2
'
,
publicPath
:
'
/_webpack/
'
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录