在 vue cli 3 项目中,我想在网页中显示版本号。版本号在package.json文件中。
我找到的对此的唯一参考是 vue 论坛中的这个链接。
但是,我无法使建议的解决方案起作用。
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文件。
process在配置 …我想生成一个 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 日。
我想有一种简单的方法可以实现这一目标,只是我找不到它。
我们有一个网站(.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)
该错误仅发生在Windows和Mac 上的Chrome 60,61和62上.我们的客户信息和遥测不会暴露任何可能负责的浏览器扩展,但我不知道如何排除这一点.有没有办法解决这个问题,或者我们是否必须假设它是Chrome扩展程序,除非它出现在其他客户端上?
我正在使用 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参数只是如何解决这个问题?
我有一个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 元素?