我收到:
语法错误:意外的令牌: 来自UglifyJS的 punc())
它指向全局变量的第一个字母API_URL。我以这种方式实现:
API_URL
export default reduxApi({ campaigns: { url: `${API_URL}/api/v1/whatever`, transformer (response) { if (!response) return {} return response.data } } }).use('fetch', adapterFetch(fetch)).use('options', { headers: getRequestHeaders() })
如果我删除键下的全局变量url:
url
export default reduxApi({ campaigns: { url: `/api/v1/whatever`, transformer (response) { if (!response) return {} return response.data } } }).use('fetch', adapterFetch(fetch)).use('options', { headers: getRequestHeaders() })
然后一切正常。有任何想法吗?为什么uglify会引发此类错误?
我决定在这里写一个解决方案。我不必安装其他uglify- js软件包版本。关键是要以适当的方式解决对对象的导入。就我而言,这API_URL是一个全局变量。因此,Uglify不确定是否已定义它,这就是它引发错误的原因。
uglify- js
为了解决该问题,我以这种方式使用了webpack外部组件:
// ------------------------------------ // Externals // ------------------------------------ webpackConfig.externals = { config: JSON.stringify(require(`./${__DEV__ ? 'development' : 'production'}.json`)), }
只是config根据环境(development或production)将JSON配置对象放入变量中。所有你需要做的就是把development.json和production.json位置旁边的定义文件webpackConfig.externals。
config
development
production
development.json
production.json
webpackConfig.externals
然后按照我的情况,您定义它development.json:
{ "apiUrl": "http://localhost:5000" }
然后最后在您的代码中:
... // other imports import config from "config" export default reduxApi({ campaigns: { url: `${config.apiUrl}/api/v1/whatever`, transformer (response) { if (!response) return {} return response.data } } }).use('fetch', adapterFetch(fetch)).use('options', { headers: getRequestHeaders() })
它就像一个魅力。
希望能帮助到别人。