配置
配置您的项目
nativescript.config.ts
是配置项目的中心位置。它允许您配置项目结构、应用程序 ID、运行时相关标志等等。
关于 .ts
扩展名的说明
您也可以将配置文件编写为普通的 .js
文件。我们建议即使您的项目未使用 TypeScript 也要坚持使用 .ts
扩展名,因为大多数编辑器会在 .ts
文件中提供自动完成。
默认情况下,配置看起来类似于以下内容
import { NativeScriptConfig } from '@nativescript/core'
export default {
id: 'org.nativescript.app',
appPath: 'app',
appResourcesPath: 'App_Resources',
android: {
v8Flags: '--expose_gc',
markingMode: 'none',
},
} as NativeScriptConfig
配置参考
id
id: string = 'com.mycompany.myapp'
控制应用程序的 ID,此设置可以通过 ios.id 和 android.id 为每个平台覆盖。
main
main: string = './src/custom-main.ts'
设置应用程序的入口点。此值通常在 package.json 的 main
字段中设置。
appPath
appPath: string = 'custom-src'
指定应用程序源代码的位置,通常是 src
或 app
。
appResourcesPath
appResourcesPath: string = '../shared/app_resources'
指定应用程序资源的位置,通常是 App_Resources
。
webpackConfigPath
webpackConfigPath: string = 'custom-webpack.config.js'
指定 webpack 配置 位置。默认情况下,它是根目录下的 webpack.config.js
。
profiling
profiling: 'counters' | 'timeline' | 'lifecycle' = "timeline"
启用分析器日志。在大多数情况下,进行分析时,您将使用 timeline
。
cssParser
cssParser: 'rework' | 'nativescript' | 'css-tree' = "css-tree"
设置 NativeScript 将使用的默认 CSS 解析器,默认情况下它使用 css-tree
。
ignoredNativeDependencies
ignoredNativeDependencies: string[] = ['@nativescript/imagepicker']
在将原生依赖项附加到构建时要忽略的 npm 包名称列表。
cli
cli: Object = {}
参见 CLI 配置参考
android
android: Object = {}
参见 Android 配置参考
ios
ios: Object = {}
参见 iOS 配置参考
hooks
hooks: Array = []
参见 Hooks 配置参考
CLI 配置参考
cli.packageManager
注意
yarn2
处于实验阶段,可在 [email protected]
或更高版本中使用。
cli.packageManager: 'npm' | 'yarn' | 'pnpm' | 'yarn2' = 'yarn';
设置此项目使用的包管理器。
默认为使用 CLI 设置的包管理器 (ns package-manager set yarn
),如果未设置则为 npm
。
cli.pathsToClean
pathsToClean?: string[];
覆盖运行 ns clean
命令时要清除的文件或路径。
cli.additionalPathsToClean
additionalPathsToClean?: string[];
运行 ns clean
命令时要清除的附加文件或路径,这些路径将附加到默认路径列表。
Android 配置参考
android.id
android.id: string = 'com.mycompany.myapp.android';
控制 Android 应用程序的 ID,此设置会覆盖在 id 中设置的值。
另请参见 ios.id.
android.discardUncaughtJsExceptions
android.discardUncaughtJsExceptions: boolean = true;
丢弃任何未捕获的 JS 异常。这在生产环境中可能很有用,在生产环境中您不希望应用程序在抛出意外 JS 异常时崩溃。
android.v8Flags
android.v8Flags: string = "--expose_gc --trace=true";
传递给 v8 运行时的标志。--expose_gc
是运行时正常工作所必需的。
android.codeCache
android.codeCache: boolean = true;
启用 v8 代码缓存。
android.gcThrottleTime
android.gcThrottleTime: number = 20; // in ms
定期 (以 ms
为单位) 触发 gc。默认为 0
(禁用)。
android.markingMode
android.markingMode: 'none' | 'full';
设置默认 gc 标记模式,默认为 none
。
已弃用的值
full
已弃用,不建议使用。
android.handleTimeZoneChanges
android.handleTimeZoneChanges: boolean = true;
在时区更改时通知应用程序,默认为 false
。
android.maxLogcatObjectSize
android.maxLogcatObjectSize: number = 9999;
设置单个输出字符串的最大长度。默认为 1024
。
android.forceLog
android.forceLog: boolean = true;
在发布模式下启用日志记录。默认为 false
。
android.memoryCheckInterval
android.memoryCheckInterval: number; // in ms
设置 freeMemoryRatio
检查的频率。
android.freeMemoryRatio
android.freeMemoryRatio: number;
内存百分比 (0.0
到 1.0
),在达到此百分比之前,它会强制执行 GC。默认为 0
(禁用)。
如果设置了此值,还需要设置 memoryCheckInterval。
android.enableLineBreakpoints
android.enableLineBreakpoints: boolean;
用于高级调试。
android.enableMultithreadedJavascript
android.enableMultithreadedJavascript: boolean;
启用多线程 JavaScript 引擎。默认为 false
。
iOS 配置参考
ios.id
ios.id: string = 'com.mycompany.myapp.ios';
控制 iOS 应用程序的 Bundle Identifier,此设置会覆盖在 id 中设置的值。
另请参见 android.id.
ios.discardUncaughtJsExceptions
ios.discardUncaughtJsExceptions: boolean = true;
丢弃任何未捕获的 JS 异常。这在生产环境中可能很有用,在生产环境中您不希望应用程序在抛出意外 JS 异常时崩溃。
ios.SPMPackages
实验性
SPM 包在 [email protected]
或更高版本中可用,并且处于实验阶段。
ios.SPMPackages: Array<{
name: string;
libs: Array<string>;
repositoryURL: string;
version: string;
}>
允许定义应安装到项目中的 Swift Package Manager 依赖项。与 Cocoapods 依赖项类似,此处列出的任何依赖项都将与项目一起构建。这意味着您可以通过 ns typings ios
为它们生成类型,以便在 TypeScript 中使用。
示例
// ...
ios: {
SPMPackages: [
{
name: 'swift-numerics',
libs: ['Numerics'],
repositoryURL: 'https://github.com/apple/swift-numerics.git',
version: '1.0.0',
},
]
}
Hooks 配置参考
hooks: [
{
type: 'before-<hookName>' | 'after-<hookName>',
script: './path/to/script.js',
},
]
允许定义项目持久化 Hook。
可用 Hook (以 before-
或 after-
为前缀)
buildAndroidPlugin
- 构建 Android 插件的 aar 文件,在prepareNativeApp
期间运行buildAndroid
- 构建 Android 应用程序buildIOS
- 构建 iOS 应用程序checkEnvironment
- 验证项目环境,在ns doctor
、ns clean
和大多数构建命令期间运行checkForChanges
- 在watch
期间发生更改install
- 应用程序已安装到设备/模拟器prepare
- 编译 webpack 并准备平台文件夹中的原生应用程序prepareNativeApp
- 准备实际的原生应用程序,在prepare
/watch
Hook 期间运行resolveCommand
- 解析命令和参数,在所有 CLI 命令之前运行watch
- 为实时同步设置观察器,在prepare
Hook 期间运行watchPatterns
- 设置观察模式,在watch
Hook 期间运行
- 下一页
- Webpack 参考