# NativeScript CLI 6.0 中的更新:默认情况下捆绑工作流,仅 Webpack 和 HMR
NativeScript 6.0 仅适用于 webpack!现在,NativeScript CLI 依靠 webpack 来构建您的应用程序代码。
# 之前
在 6.0 版之前,NativeScript 支持两种构建项目的方式:
tns build- 传统工作流程,它复制源代码目录(“ src /”)的全部内容;
tns build --bundle- 在 Bundle 工作流程,其依赖于的 WebPack 捆绑源代码目录(“ SRC /”)到几个输出文件。
捆绑包工作流位于捆绑包标志后面。您不仅可以在构建过程中使用它,还可以在开发过程中使用它:
tns run --bundle
tns preview --bundle
tns debug --bundle
tns test --bundle
捆绑软件工作流程还支持使用 hmr 标志替换热模块。
tns run --bundle --hmr
# 仅限 Webpack
从 6.0 版开始,NativeScript CLI 仅支持 webpack 的捆绑工作流程。旧版工作流程不再可用。现在,所有构建应用程序代码的 CLI 命令都使用捆绑工作流程:
tns build
tns run
tns preview
tns prepare
tns debug
tns test
# 该束标志
您仍然可以将捆绑标志提供给上述任何命令。它不会以任何方式改变他们的行为。但是,您不能关闭捆绑包标志,也不能禁用捆绑包工作流程。
# 将同步所有文件标志
将同步所有文件标志不再可用。提供它用于监视 node_modules 目录中的更改并在开发过程中使其同步。使用捆绑软件工作流程,该工作将自动完成。监视文件的工作流程是:
Webpack 监视源代码中所需的所有文件,而不管它们的位置(应用程序或 node_modules);
NativeScript CLI 开始监视本机文件:
- App_Resources 中的文件
- nativescript 插件的平台目录
- nativescript 插件的 package.json 文件
- NativeScript CLI 还监视应用程序的 package.json 文件(
my-project/package.json
和my-project/app/package-json
)。
# 默认情况下更换热模块
现在默认情况下启用热模块更换。现在,以下命令可用于 HMR:
tns run
tns preview
tns debug [android|ios]
您可以使用 no-hmr 标志禁用热模块更换:
tns run --no-hmr
tns preview --no-hmr
tns debug [android|ios] --no-hmr
NativeScript 团队强烈建议在应用程序开发期间使用热模块替换。HMR 可以大大减少更改之间的重新加载时间,并改善您的开发经验。
有关 NativeScript 中的 HMR 的更多信息,请查看“深度学习”博客文章系列。
# 以生产模式构建
Webpack 有两种编译模式 -开发和生产。默认模式是开发。
在 NativeScript 6.0 之前,提供用于启用生产模式的 env.uglify 标志。
# Webpack builds in production mode
tns build --bundle --env.uglify
在 NativeScript 6.0 中,提供发布标志将启用生产模式。该 env.uglify 标志已不改变编译模式。它仅告诉 webpack 使用 TerserPlugin 最小化捆绑包。
# Webpack builds in production mode
tns build --release --keyStorePath ~/my.keystore --keyStorePassword myPass --keyStoreAlias myAlias --keyStoreAliasPassword myAliasPass
# Webpack builds in development mode
tns build --bundle --env.uglify
# nativescript-dev-webpack 1.0
nativescript-dev-webpack 是包含与 webpack 相关的所有构建逻辑的软件包。每个 NativeScript 6.0 项目都需要依赖该软件包,该软件包现在具有其第一个稳定版本 -1.0!
# 钩子
所述 nativescript-DEV-的 WebPack 包插头插入使用钩 NativeScript CLI 构建。将 CLI 迁移到捆绑工作流程需要对 hooks API 进行更改。其中某些可能无法使用 NativeScript 插件。有关更多信息,请查看有关将 CLI 挂钩迁移到 NativeScript 6.0 的博客文章。