-
Notifications
You must be signed in to change notification settings - Fork 14
nowa 2.0 #52
Comments
nowa-config-xxxx 里的一些常用配置,entry、output 等,最好还是能通过命令行参数加进去 |
命令行的优先级 > .nowa.js nowa-config-xxxx index.js
.nowa.js
|
@Jirapo |
nowa-config-default
|
配置独立之后: nowa-template:
|
支持环境一般情况下
nowa 2.0
安装概述
全局安装名字暂定
项目安装包 (名字暂定)
配置
模版
内部包
从带nowa配置的项目开始使用初始化项目从项目模板初始化
要从模板初始化一个项目,请执行
同时也支持 手动初始化(有 config)我们提供了多套默认设置以覆盖多数开发者的要求
npm i -D nowa-core nowa-config-default 现在可以在项目中使用配置可用中的 手动初始化 (无 config)如果默认配置无法满足您的需求,或者是项目本身已经有自己的 webpack 配置。也可可以使用 nowa 进行构建
// TODO 示例图片 随后即可开始使用 开发本地服务器开发使用可以通过 请在项目根目录下执行。 nowa server webpack 的构建输出文件将不会写到文件系统,而是缓存在内存中,在访问时直接输出。这样做可显著提高构建效率。 参数// TODO 从 webpack-dev-server 选取参数 构建可以通过 nowa build --config default --dist .package // TODO 从 webpack 选取参数 可配置多套构建方式,并通过第二参数进行调用 nowa build local
nowa build daily
nowa build prod
nowa build prod --output-path .package // 云构建 渐进配置从已有配置开始
从空白项目开始
插件模板
|
创建doc repo 放文档吧 |
这样对小白用户来说只需要安装一个东西,其他都是通过配置来的~。~完美 |
nowa init 需要支持本地路径 |
|
参考webpackbin.com ,如这个简洁好用即可。 |
就一个要求,完全向下兼容即可 |
@wushanchao @lpgray 发布2.0从我角度上是需要 catch up 最新的打包/优化方式。这个不仅仅是需要从构建配置这块入手。比如 由于这个的改动量不少。做出来的话也只能从新的项目开始应用。。 |
@tommytroylin 向下兼容可以考虑提供一个升级包,这块我来搞吧 |
零配置启动一个 react 的 hello-world
|
本周我自己使用 nowa@2 起了一个react typescript项目,发现了一些易用性的问题。我个人也思考并实施了下解决方案。在此讨论一下。。 如果有其他的意见也请一并贴出,现在大改动还来得及。。。
// 之前输出配置方式如下
exports const build = {
context: __projroot, // nowa 挂载的全局数据
}; // 这里是 webpack config对象 新增之后 exports const buildOptions = { // 这个配置会传给 cli 用于输出帮助信息
skipMinify: {
default: false,
describe: 'skip minify js files',
type: 'boolean',
},
targetBrowsers: {
default: 'ie >= 9',
describe: 'https://babeljs.io/docs/plugins/preset-env/#optionstargets-browsers',
type: 'string',
},
};
exports const build = { // 之后此对象会递归过滤掉 undefined 值
module: {
rules: [
{
test: /\.jsx?$/,
loader: 'babel-loader',
options: {
presets: [
['env', { targets: { browsers: __option('targetBrowsers') }, modules: false }],
],
},
},
],
},
plugins: [
__option(({ skipMinify }) => skipMinify ? new MinifyPlugin() : undefined), // 全局方法名字暂定
],
}; 而用户可以通过命令行参数和 alias进行配置 // nowa.js
export const nowa = {
build: {
__options: { // 配置名字暂定
targetBrowsers: 'chrome >= 50'
},
},
};
|
nowa 脚手架 / init 更改
|
Why
webpack@1
已被 废弃Solution
webpack
升级到3.x
Target
简化项目文件:(1.0已经做到了)
抽离构建配置:(2.0的重点)
插件化:
Pending Discussions
d.ts
ts描述文件描述外露接口Cases in Vision
有模板新项目:
无模板项目(完美情况):
构建配置编写:
nowa-config-xxxx index.js
构建配置修改(部分修改):
.nowa.js
The text was updated successfully, but these errors were encountered: