从 Nativescript 6.1 核心打字稿文件访问 webpack 变量
Accessing webpack variables from Nativescript 6.1 Core typescript file
我有一个 NS 6.1 核心应用程序。在 webpack 中,我想添加一个我想稍后在打字稿文件中访问的变量。这是我的代码:
// Define useful constants like TNS_WEBPACK
new webpack.DefinePlugin({
"global.TNS_WEBPACK": "true",
"process": "global.process",
"myGlobal.environment": JSON.stringify(env.mode|| 'not defined'),
}),
TS:
declare let myGlobal: any;
export function onLoaded(e) {
page = <Page>e.object;
console.log('myGlobal.environment: ' + myGlobal.environment);
}
我面临的问题是当我 运行 代码时没有定义 myGlobal。
我尝试删除 platforms 文件夹并重建,但我得到了同样的错误。
关于我可能做错了什么有什么想法吗?
问题是 env 常量 not 有一个 mode 属性 但是一个布尔值叫做 生产。这是 env 的样子
const {
// The 'appPath' and 'appResourcesPath' values are fetched from
// the nsconfig.json configuration file.
appPath = "app",
appResourcesPath = "app/App_Resources",
// You can provide the following flags when running 'tns run android|ios'
snapshot, // --env.snapshot
production, // --env.production
uglify, // --env.uglify
report, // --env.report
sourceMap, // --env.sourceMap
hiddenSourceMap, // --env.hiddenSourceMap
hmr, // --env.hmr,
unitTesting, // --env.unitTesting,
verbose, // --env.verbose
snapshotInDocker, // --env.snapshotInDocker
skipSnapshotTools, // --env.skipSnapshotTools
compileSnapshot // --env.compileSnapshot
} = env;
如 JavaScript undefined 等于 false (对于布尔值),这意味着如果 release 标志未显式传递,生产将始终未定义 (false)。因此,您可以执行以下操作:
"myGlobal.environment": JSON.stringify(env.production || "development")
或者转念一想更像是
"myGlobal.environment": JSON.stringify(env.production ? "production" : "development")
我有一个 NS 6.1 核心应用程序。在 webpack 中,我想添加一个我想稍后在打字稿文件中访问的变量。这是我的代码:
// Define useful constants like TNS_WEBPACK
new webpack.DefinePlugin({
"global.TNS_WEBPACK": "true",
"process": "global.process",
"myGlobal.environment": JSON.stringify(env.mode|| 'not defined'),
}),
TS:
declare let myGlobal: any;
export function onLoaded(e) {
page = <Page>e.object;
console.log('myGlobal.environment: ' + myGlobal.environment);
}
我面临的问题是当我 运行 代码时没有定义 myGlobal。
我尝试删除 platforms 文件夹并重建,但我得到了同样的错误。
关于我可能做错了什么有什么想法吗?
问题是 env 常量 not 有一个 mode 属性 但是一个布尔值叫做 生产。这是 env 的样子
const {
// The 'appPath' and 'appResourcesPath' values are fetched from
// the nsconfig.json configuration file.
appPath = "app",
appResourcesPath = "app/App_Resources",
// You can provide the following flags when running 'tns run android|ios'
snapshot, // --env.snapshot
production, // --env.production
uglify, // --env.uglify
report, // --env.report
sourceMap, // --env.sourceMap
hiddenSourceMap, // --env.hiddenSourceMap
hmr, // --env.hmr,
unitTesting, // --env.unitTesting,
verbose, // --env.verbose
snapshotInDocker, // --env.snapshotInDocker
skipSnapshotTools, // --env.skipSnapshotTools
compileSnapshot // --env.compileSnapshot
} = env;
如 JavaScript undefined 等于 false (对于布尔值),这意味着如果 release 标志未显式传递,生产将始终未定义 (false)。因此,您可以执行以下操作:
"myGlobal.environment": JSON.stringify(env.production || "development")
或者转念一想更像是
"myGlobal.environment": JSON.stringify(env.production ? "production" : "development")