我有一个NS Core应用程序,我刚刚将其更新为NS5。我还遵循https://www.nativescript.org/blog/upgrading-to-nativescript-webpack-0.12.0升级了项目以使用webpack进行构建。
我有2个文件,其中包含应用程序的所有配置键/值对。 它们被称为:config.debug.ts和config.release.ts。
下面是它们的外观片段:
export class Config {
static constants = {
INTERNAL_API_URL: '<some value>',
INTERNAL_API_KEY: '<some value>',
...
some more settings
}
}
我面临的问题是,为了引用此文件语句,例如: var configModule = require('../ config'); 不再起作用。我必须将其更改为从'../ config'; 导入。但是,在构建应用程序时(将Nativescript Sidekick与云结合使用,发布选项),webpack会引发错误:
未找到模块:错误:无法解析'../ config'
如果我从<../ config.debug'中使用 import {Config}; ,一切都会按预期进行。
这是我的package.json:
{
"name": "<name>",
"version": "4.0.0",
"description": "<descr>",
"license": "SEE LICENSE IN <your-license-filename>",
"readme": "NativeScript Application",
"repository": "<fill-your-repository-here>",
"nativescript": {
"id": "<id>",
"tns-ios": {
"version": "5.4.1"
},
"tns-android": {
"version": "5.4.0"
}
},
"dependencies": {
"moment": "2.20.1",
"moment-timezone": "0.5.14",
"nativescript-appversion": "1.4.1",
"nativescript-email": "1.5.1",
"nativescript-exit": "1.0.1",
"nativescript-fingerprint-auth": "6.2.0",
"nativescript-iqkeyboardmanager": "1.2.0",
"nativescript-loading-indicator": "2.4.0",
"nativescript-masked-text-field": "2.0.2",
"nativescript-numeric-keyboard": "4.2.3",
"nativescript-pdf-view": "2.0.1",
"nativescript-phone": "1.4.0",
"nativescript-push-notifications": "1.1.4",
"nativescript-theme-core": "1.0.4",
"nativescript-ui-calendar": "^3.5.1",
"nativescript-zendesk-sdk": "0.2.0",
"tns-core-modules": "^5.3.2"
},
"devDependencies": {
"babel-traverse": "6.4.5",
"babel-types": "6.4.5",
"babylon": "6.4.5",
"lazy": "1.0.11",
"nativescript-dev-typescript": "0.10.0",
"nativescript-dev-webpack": "0.24.1",
"tns-platform-declarations": "^3.4.0",
"typescript": "3.4.3"
}
}
我从来没有使用过webpack,所以我不确定如何设置它来动态地进行调试/发布配置。
谢谢。
答案 0 :(得分:0)
默认的Webpack配置不支持处理特定于环境的文件。您可以改用environment variables。
或者您可以根据从CLI传递的环境变量使用CopyWebpackPlugin
复制特定的环境文件。
例如,--env.name=debug
基于名称,您可以传递要在CopyWebpackPlugin
设置中复制的特定文件路径。
还有nativescript-app-environment插件,一种替代方法。