当我在app.ts的开头添加以下行
@app.context_processor
def override_url_for():
return dict(url_for=dated_url_for)
def dated_url_for(endpoint, **values):
if endpoint == 'static':
filename = values.get('filename', None)
if filename:
file_path = os.path.join(app.root_path,
endpoint, filename)
values['q'] = int(os.stat(file_path).st_mtime)
return url_for(endpoint, **values)
我收到以下错误,
无法重新声明块范围变量'crypto'
好像它已从其他地方全球导入, 这就是我的tsconfig.json的样子
const crypto = require('crypto');
PS: 上面的错误是当我尝试从终端传输它时。 我在VisualStdioCode中使用VisualStdioCode,它没有显示任何错误,
/ path / to / VisualStdioCode / Visual Studio Code.app/Contents/Resources/app/extensions/typescript/node_modules/typescript/lib/lib.dom.d.ts
EDIT(解决): 这里的问题与cannot redeclare block scoped variable (typescript)略有不同 这个问题的目的是检测重复的导入源,而不是使用ES6非显式赋值来为我们自动解决它。 这里的解决方案是从libs或node_modules导入,而不是在答案中提到的范围。
答案 0 :(得分:1)
crypto
已经是浏览器中的全局只读属性,因此TypeScript会阻止您尝试覆盖它。
https://developer.mozilla.org/en-US/docs/Web/API/Window/crypto
但是,既然您正在使用commonJS,那么您可能正在构建Node,也许您并不意味着要包含" dom" " lib"?
中的打字