在Pete Hunt's Webpack How To將此代碼用於:閱讀環境變量時,JSON.parse/stringify有什麼用?
// definePlugin takes raw strings and inserts them, so you can put strings of JS if you want.
var definePlugin = new webpack.DefinePlugin({
__DEV__: JSON.stringify(JSON.parse(process.env.BUILD_DEV || 'true')),
__PRERELEASE__: JSON.stringify(JSON.parse(process.env.BUILD_PRERELEASE || 'false'))
});
什麼是JSON.stringify(JSON.parse(..))
這裏需要的? JSON字符串化/解析有助於克隆對象以避免突變,但process.env.BUILD_DEV
是(且只能是?)一個字符串。那麼,爲什麼要使用它?
TheTo克隆一個對象,可以使用'var newObj = JSON.parse(JSON.stringify(object))''而不是相反 - 也許這是一個黑客來確保字符串是有效的,即使它包含換行符或引號 – mplungjan
如果環境變量包含與數字,null,true或false(或正確轉義的轉義字符串或json對象)不同的東西,則會失敗。可能是爲了避免人們將BUILD_DEV設置爲「是」,也許?雖然我會刪除outlord'JSON.stringify()' –