本机脚本-Webpack无法识别调试/发布专用文件

时间:2019-06-13 15:51:06

标签: webpack nativescript

我有一个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,所以我不确定如何设置它来动态地进行调试/发布配置。

谢谢。

1 个答案:

答案 0 :(得分:0)

默认的Webpack配置不支持处理特定于环境的文件。您可以改用environment variables

或者您可以根据从CLI传递的环境变量使用CopyWebpackPlugin复制特定的环境文件。

例如,--env.name=debug基于名称,您可以传递要在CopyWebpackPlugin设置中复制的特定文件路径。

还有nativescript-app-environment插件,一种替代方法。