Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CoCo_Code_Op2
next.js
提交
577e2c27
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,发现更多精彩内容 >>
提交
577e2c27
编写于
10月 17, 2016
作者:
N
nkzawa
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
use webpack for transpiling too
上级
82f23e2a
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
15 addition
and
124 deletion
+15
-124
server/build/bundle.js
server/build/bundle.js
+0
-53
server/build/index.js
server/build/index.js
+15
-20
server/build/transpile.js
server/build/transpile.js
+0
-51
未找到文件。
server/build/bundle.js
已删除
100644 → 0
浏览文件 @
82f23e2a
import
{
resolve
,
dirname
,
basename
}
from
'
path
'
import
webpack
from
'
webpack
'
export
default
function
bundle
(
src
,
dst
)
{
const
compiler
=
webpack
({
entry
:
src
,
output
:
{
path
:
dirname
(
dst
),
filename
:
basename
(
dst
),
libraryTarget
:
'
commonjs2
'
},
externals
:
[
'
react
'
,
'
react-dom
'
,
{
[
require
.
resolve
(
'
react
'
)]:
'
react
'
,
[
require
.
resolve
(
'
../../lib/link
'
)]:
'
next/link
'
,
[
require
.
resolve
(
'
../../lib/css
'
)]:
'
next/css
'
,
[
require
.
resolve
(
'
../../lib/head
'
)]:
'
next/head
'
}
],
resolveLoader
:
{
root
:
resolve
(
__dirname
,
'
..
'
,
'
..
'
,
'
node_modules
'
)
},
plugins
:
[
new
webpack
.
optimize
.
UglifyJsPlugin
({
compress
:
{
warnings
:
false
},
sourceMap
:
false
})
],
module
:
{
preLoaders
:
[
{
test
:
/
\.
json$/
,
loader
:
'
json-loader
'
}
]
}
})
return
new
Promise
((
resolve
,
reject
)
=>
{
compiler
.
run
((
err
,
stats
)
=>
{
if
(
err
)
return
reject
(
err
)
const
jsonStats
=
stats
.
toJson
()
if
(
jsonStats
.
errors
.
length
>
0
)
{
const
error
=
new
Error
(
jsonStats
.
errors
[
0
])
error
.
errors
=
jsonStats
.
errors
error
.
warnings
=
jsonStats
.
warnings
return
reject
(
error
)
}
resolve
()
})
})
}
server/build/index.js
浏览文件 @
577e2c27
import
{
resolve
}
from
'
path
'
import
glob
from
'
glob-promise
'
import
transpile
from
'
./transpile
'
import
bundle
from
'
./bundle
'
import
webpack
from
'
./webpack
'
export
default
async
function
build
(
dir
)
{
const
dstDir
=
resolve
(
dir
,
'
.next
'
)
const
templateDir
=
resolve
(
__dirname
,
'
..
'
,
'
..
'
,
'
pages
'
)
const
compiler
=
await
webpack
(
dir
)
// create `.next/pages/_error.js`
// which may be overwriten by the user sciprt, `pages/_error.js`
const
templatPaths
=
await
glob
(
'
**/*.js
'
,
{
cwd
:
templateDir
})
await
Promise
.
all
(
templatPaths
.
map
(
async
(
p
)
=>
{
await
transpile
(
resolve
(
templateDir
,
p
),
resolve
(
dstDir
,
'
pages
'
,
p
))
}))
return
new
Promise
((
resolve
,
reject
)
=>
{
compiler
.
run
((
err
,
stats
)
=>
{
if
(
err
)
return
reject
(
err
)
const
paths
=
await
glob
(
'
**/*.js
'
,
{
cwd
:
dir
,
ignore
:
'
node_modules/**
'
})
await
Promise
.
all
(
paths
.
map
(
async
(
p
)
=>
{
await
transpile
(
resolve
(
dir
,
p
),
resolve
(
dstDir
,
p
))
}))
const
jsonStats
=
stats
.
toJson
()
if
(
jsonStats
.
errors
.
length
>
0
)
{
const
error
=
new
Error
(
jsonStats
.
errors
[
0
])
error
.
errors
=
jsonStats
.
errors
error
.
warnings
=
jsonStats
.
warnings
return
reject
(
error
)
}
const
pagePaths
=
await
glob
(
'
pages/**/*.js
'
,
{
cwd
:
dstDir
})
await
Promise
.
all
(
pagePaths
.
map
(
async
(
p
)
=>
{
await
bundle
(
resolve
(
dstDir
,
p
),
resolve
(
dstDir
,
'
_bundles
'
,
p
))
}))
resolve
()
})
})
}
server/build/transpile.js
已删除
100644 → 0
浏览文件 @
82f23e2a
import
{
dirname
}
from
'
path
'
import
fs
from
'
mz/fs
'
import
mkdirp
from
'
mkdirp-then
'
;
import
{
transformFile
}
from
'
babel-core
'
import
preset2015
from
'
babel-preset-es2015
'
import
presetReact
from
'
babel-preset-react
'
import
transformAsyncToGenerator
from
'
babel-plugin-transform-async-to-generator
'
import
transformClassProperties
from
'
babel-plugin-transform-class-properties
'
import
transformObjectRestSpread
from
'
babel-plugin-transform-object-rest-spread
'
import
transformRuntime
from
'
babel-plugin-transform-runtime
'
import
moduleAlias
from
'
babel-plugin-module-alias
'
const
babelRuntimePath
=
require
.
resolve
(
'
babel-runtime/package
'
)
.
replace
(
/
[\\\/]
package
\.
json$/
,
''
);
const
babelOptions
=
{
presets
:
[
preset2015
,
presetReact
],
plugins
:
[
transformAsyncToGenerator
,
transformClassProperties
,
transformObjectRestSpread
,
transformRuntime
,
[
moduleAlias
,
[
{
src
:
`npm:
${
babelRuntimePath
}
`
,
expose
:
'
babel-runtime
'
},
{
src
:
`npm:
${
require
.
resolve
(
'
react
'
)}
`
,
expose
:
'
react
'
},
{
src
:
`npm:
${
require
.
resolve
(
'
../../lib/link
'
)}
`
,
expose
:
'
next/link
'
},
{
src
:
`npm:
${
require
.
resolve
(
'
../../lib/css
'
)}
`
,
expose
:
'
next/css
'
},
{
src
:
`npm:
${
require
.
resolve
(
'
../../lib/head
'
)}
`
,
expose
:
'
next/head
'
}
]
]
],
ast
:
false
}
export
default
async
function
transpile
(
src
,
dst
)
{
const
code
=
await
new
Promise
((
resolve
,
reject
)
=>
{
transformFile
(
src
,
babelOptions
,
(
err
,
result
)
=>
{
if
(
err
)
return
reject
(
err
)
resolve
(
result
.
code
)
})
})
await
writeFile
(
dst
,
code
)
}
async
function
writeFile
(
path
,
data
)
{
await
mkdirp
(
dirname
(
path
))
await
fs
.
writeFile
(
path
,
data
,
{
encoding
:
'
utf8
'
,
flag
:
'
w+
'
})
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录