在const文件夹中有三个文件( index.js、package.json和sample.js )
index.js
export const FOO = {
RENEWAL: 2,
...
};
export const BAR = {
ITEM: 2,
...
};package.json
{
"name": "@const",
"description": "All the constants like colors, string, product id, their title etc"
}sample.js
import {FOO, BAR} from '.';
export const someFunc = () => {
const test = FOO.RENEWAL;
}在过去的一年里,这个代码运行良好。
在发布模式下,它突然开始抛出错误TypeError: Cannot read property 'RENEWAL' of undefined。
但是,在调试模式下运行并使用VSCode IntelliSense不会引发任何错误,并且能够识别正确的值。
用下面的导入语句替换它的工作罚款
import {FOO, BAR} from '@const';
为什么import {FOO, BAR} from '.';突然停止工作?也有什么区别
使用'.'
'@const'
'./index'module.exports这样的导出
const FOO = {...}
const BAR = {...}
export {
FOO,
BAR,
}发布于 2021-08-16 19:37:31
请始终练习定义正确的路径,因为在某些版本发布后,它将改变其行为。
这5个有什么区别吗?
export default {}和export const没有什么不同,但是定义.会在将来产生问题,而对于@const,除了使用自定义webpack配置之外,没有办法这样定义。
正确的方法是./,否则我建议您使用/index,因为它显示文件并且易于阅读。
发布于 2021-08-16 19:40:13
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.0/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
https://stackoverflow.com/questions/68806775
复制相似问题