小编Ser*_*eon的帖子

Vue cli 3 显示 package.json 中的信息

在 vue cli 3 项目中,我想在网页中显示版本号。版本号在package.json文件中。

我找到的对此的唯一参考是 vue 论坛中的这个链接

但是,我无法使建议的解决方案起作用。

我尝试过的事情

  1. 使用webpack.definePlugin作为链接的资源:

vue.config.js

const webpack = require('webpack');

module.exports = {
  lintOnSave: true,

  configureWebpack: config => {
    return {
      plugins: [
        new webpack.DefinePlugin({
          'process.env': {
            VERSION: require('./package.json').version,
          }
        })
      ]
    }
  },
}
Run Code Online (Sandbox Code Playgroud)

然后在main.tsI read process.env,但它不包含 VERSION (我尝试了几个变体,比如在链接页面中生成一个 PACKAGE_JSON 字段,并生成像 'foo' 这样的普通值而不是从 中读取package-json)。它从未奏效,就像代码被忽略了一样。我猜process.envvue webpack 的东西稍后会重新定义它。

process日志中main.ts含有,但是,所有的东西,process通常包含在VUE-CLI项目,如模式和定义的变量VUE_APP.env文件。

  1. 尝试process在配置 …

javascript webpack vue.js vuejs2 vue-cli-3

17
推荐指数
3
解决办法
7757
查看次数

Luxon:如何忽略特定日期的默认时区

我想生成一个 Luxon 日期而不使用 Settings.defaultZone

就我而言,我从第三方日期选择器组件获得了一个日期字符串。格式如下:

2019-06-28T00:00:00

但是,现在我们在所有应用程序中都使用 Luxon 来管理日期,因此我需要解析该日期以生成一个 Luxon 日期。

因此,我将字符串解析如下:

import { DateTime } from 'luxon';
function parseDate(dateString) { // Let's say dateString === 2019-06-28T00:00:00

  const formattedDate = DateTime.fromISO(value); // 2019-06-27T23:00:00.000Z
 ...
}
Run Code Online (Sandbox Code Playgroud)

如您所见, formattedDate受当前时区的影响。在这种特定情况下,在应用程序引导程序中,我们将通用时区设置为 GMT+1。

因此,格式化日期设置为 6 月 27 日的 23:00,而不是 6 月 28 日的 00:00,这是用户在日期选择器中选择的日期。全球时区设置随着时间调整。

这通常很好,但在这种特定情况下(用户选择他们身份证的到期日期),我们不需要也不想考虑时区。我希望将日期设置为 6 月 28 日,UTC 时区。

我试过这个:

const formattedValue = DateTime.fromISO(value).setZone('utc');

但是,这不会修改日期,而是设置为 6 月 27 日。

我想有一种简单的方法可以实现这一目标,只是我找不到它。

javascript timezone datetime date luxon

8
推荐指数
1
解决办法
3910
查看次数

间歇"不是产品"Javascript错误

我们有一个网站(.Net/jquery/Bootstrap 4),使用Rollbar记录Javascript错误.Rollbar正在记录间歇性Javascript错误,并显示消息"Not a Product".对于跟踪,它仅包括:

File "(unknown)" line (unknown) col 0 in [anonymous]
Run Code Online (Sandbox Code Playgroud)

该错误仅发生WindowsMac 上的Chrome 60,61和62上.我们的客户信息和遥测不会暴露任何可能负责的浏览器扩展,但我不知道如何排除这一点.有没有办法解决这个问题,或者我们是否必须假设它是Chrome扩展程序,除非它出现在其他客户端上?

javascript google-chrome-extension rollbar

5
推荐指数
1
解决办法
115
查看次数

combineReducer 中使用的减速器的声纳代码气味

我正在使用 combineReducer 像这样组合减速器和减速器

const todo = (state = {}, action) => {
  switch (action.type) {
    //...

    case 'TOGGLE_TODO':
      if (state.id !== action.id) {
        return state
      }

      return Object.assign({}, state, {
        completed: !state.completed
      })

    default:
      return state
  }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我像这样定义减速器,我会闻到声纳代码的味道

Function parameters with default values should be last1
Run Code Online (Sandbox Code Playgroud)

但是在这个序列中结合reducer pass参数只是如何解决这个问题?

javascript reactjs sonarqube redux

5
推荐指数
2
解决办法
2209
查看次数

Cypress:子命令主题似乎不是一个元素

我有一个fillInput()将选择器和值作为参数的函数,然后:

  • 清除输入通过 cy.get(selector).clear()

  • 然后通过填充输入值 cy.get(selector).type(value)

据我所知,这确实是某种反模式,应该使用cypress 命令

因此,在阅读 child commands 时,我提出了这个命令,它应该与我的fillInput()实用程序功能相同:

Cypress.Commands.add('fillInput', {prevSubject: 'element'}, (subject, value) => {
  subject.clear();
  subject.type(value);
});
Run Code Online (Sandbox Code Playgroud)

但是,当我通过以下方式在规范中尝试此操作时:

cy.get('#my-selector').fillInput('my-value');
Run Code Online (Sandbox Code Playgroud)

我在 cypress 浏览器控制台中收到此错误:

TypeError: subject.clear is not a function
Run Code Online (Sandbox Code Playgroud)

在文档中,cy.get()据说会产生一个 DOM 元素,并且{prevSubject: 'element'}应该subject是相同的类型(据我所知)。

但是,subject似乎是一种不同的类型和方法,适用于type()或 ' clear()等元素or ' should()不适用于子命令主题。

如何让subject我的孩子命令充当 Dom 元素?

javascript e2e-testing cypress

1
推荐指数
2
解决办法
1398
查看次数